svn commit: r13020 - branches/gsoc2007/maurelio1234/src_new/org/argouml/ui/ProfileSelectionTab.java

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: maurelio1234
Date: 2007-07-10 05:52:04-0700
New Revision: 13020

Modified:
   branches/gsoc2007/maurelio1234/src_new/org/argouml/ui/ProfileSelectionTab.java

Log:
solved NullPointerException and ArrayIndexOutOfBoundsException and listeners not being fired bug.

Modified: branches/gsoc2007/maurelio1234/src_new/org/argouml/ui/ProfileSelectionTab.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2007/maurelio1234/src_new/org/argouml/ui/ProfileSelectionTab.java?view=diff&rev=13020&p1=branches/gsoc2007/maurelio1234/src_new/org/argouml/ui/ProfileSelectionTab.java&p2=branches/gsoc2007/maurelio1234/src_new/org/argouml/ui/ProfileSelectionTab.java&r1=13019&r2=13020
==============================================================================
--- branches/gsoc2007/maurelio1234/src_new/org/argouml/ui/ProfileSelectionTab.java	(original)
+++ branches/gsoc2007/maurelio1234/src_new/org/argouml/ui/ProfileSelectionTab.java	2007-07-10 05:52:04-0700
@@ -216,10 +216,14 @@
 	 * @see javax.swing.ListModel#getElementAt(int)

 	 */

 	public Object getElementAt(int n) {

-	    ProfileConfiguration config = ProjectManager.getManager()

-		    .getCurrentProject().getProfileConfiguration();

-	    return ((Profile) config.getProfiles().elementAt(n))

-		    .getDisplayName();

+            ProfileConfiguration config = ProjectManager.getManager()

+                    .getCurrentProject().getProfileConfiguration();

+            if (n >= 0 && n < config.getProfiles().size()) {

+                return ((Profile) config.getProfiles().elementAt(n))

+                        .getDisplayName();

+            } else {

+                return null;

+            }

 	}

 

 	/**

@@ -299,34 +303,45 @@
      * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

      */

     public void actionPerformed(ActionEvent arg0) {

-	if (arg0.getSource() == addButton) {

-	    AvailableProfilesListModel model = 

-		((AvailableProfilesListModel) availableList.getModel());

-	    Profile selected = model.getProfileAt(availableList

-		    .getSelectedIndex());

-	    ProjectManager.getManager().getCurrentProject()

-		    .getProfileConfiguration().addProfile(selected);

-	    model.fireListeners();

+        AvailableProfilesListModel modelAvl = ((AvailableProfilesListModel) availableList

+                .getModel());

+        UsedProfilesListModel modelUsd = ((UsedProfilesListModel) usedList

+                .getModel());

+

+        if (arg0.getSource() == addButton) {

+            if (availableList.getSelectedIndex() != -1) {

+                Profile selected = modelAvl.getProfileAt(availableList

+                        .getSelectedIndex());

+                ProjectManager.getManager().getCurrentProject()

+                        .getProfileConfiguration().addProfile(selected);

+                

+                modelAvl.fireListeners();

+                modelUsd.fireListeners();

+            }

 	} else if (arg0.getSource() == removeButton) {

-	    UsedProfilesListModel model = ((UsedProfilesListModel) usedList

-		    .getModel());

-	    Profile selected = model.getProfileAt(usedList.getSelectedIndex());

-	    ProjectManager.getManager().getCurrentProject()

-		    .getProfileConfiguration().removeProfile(selected);

-	    model.fireListeners();

+            if (usedList.getSelectedIndex() != -1) {

+                Profile selected = modelUsd.getProfileAt(usedList

+                        .getSelectedIndex());

+                ProjectManager.getManager().getCurrentProject()

+                        .getProfileConfiguration().removeProfile(selected);

+                

+                modelAvl.fireListeners();

+                modelUsd.fireListeners();

+            }

 	} else if (arg0.getSource() == unregisterProfile) {

-	    AvailableProfilesListModel model = 

-		((AvailableProfilesListModel) availableList

-		    .getModel());

-	    Profile selected = model.getProfileAt(availableList

-		    .getSelectedIndex());

-	    if (selected instanceof UserDefinedProfile) {

-		ProfileManagerImpl.getInstance().removeProfile(selected);

-		model.fireListeners();

-	    } else {

-		JOptionPane.showMessageDialog(this,

-			"Only user defined profiles can be removed");

-	    }

+	    if (availableList.getSelectedIndex() != -1) {

+                Profile selected = modelAvl.getProfileAt(availableList

+                        .getSelectedIndex());

+                if (selected instanceof UserDefinedProfile) {

+                    ProfileManagerImpl.getInstance().removeProfile(selected);

+

+                    modelAvl.fireListeners();

+                    modelUsd.fireListeners();

+                } else {

+                    JOptionPane.showMessageDialog(this,

+                            "Only user defined profiles can be removed");

+                }

+            }

 	} else if (arg0.getSource() == loadFromFile) {

 	    JFileChooser fileChooser = new JFileChooser();

 	    fileChooser.setFileFilter(new FileFilter() {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.