svn commit: r13020 - branches/gsoc2007/maurelio1234/src_new/org/argouml/ui/ProfileSelectionTab.java
| 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() {