Author: maurelio1234
Date: 2008-07-24 03:41:33-0700
New Revision: 15360
Modified:
trunk/src/argouml-app/src/org/argouml/i18n/tab.properties
trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java
trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProfile.java
trunk/src/argouml-app/src/org/argouml/ui/SettingsTabProfile.java
trunk/src/argouml-app/tests/org/argouml/kernel/TestProjectWithProfiles.java
trunk/src/argouml-app/tests/org/argouml/profile/internal/TestProfileManagerImpl.java
Log:
resolving instabilities in Hudson build #479 caused by revision 15359
changed two test cases that made too strict hypothesis on the default profile configuration
changed the ui and the profile manager to disallow the removal of the UML profile
Modified: trunk/src/argouml-app/src/org/argouml/i18n/tab.properties
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/i18n/tab.properties?view=diff&rev=15360&p1=trunk/src/argouml-app/src/org/argouml/i18n/tab.properties&p2=trunk/src/argouml-app/src/org/argouml/i18n/tab.properties&r1=15359&r2=15360
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/i18n/tab.properties (original)
+++ trunk/src/argouml-app/src/org/argouml/i18n/tab.properties 2008-07-24 03:41:33-0700
@@ -62,6 +62,7 @@
tab.profiles.directories.remove = Remove
tab.profiles.directories.refresh = Refresh
+tab.profiles.cantremoveuml = The UML profile can not be removed!
tab.profiles.cannotdelete = Only user defined profiles can be unregistered!
tab.profiles.confirmdeleteunregistered = The selected profile is only available \
in this project, after removed there is no way to add it again. \
Modified: trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java?view=diff&rev=15360&p1=trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java&p2=trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java&r1=15359&r2=15360
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java (original)
+++ trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java 2008-07-24 03:41:33-0700
@@ -75,14 +75,17 @@
private List<String> searchDirectories = new ArrayList<String>();
+ private Profile profileUML;
+
/**
* Constructor - includes initialization of built-in default profiles.
*/
public ProfileManagerImpl() {
try {
- Profile uml = new ProfileUML();
- registerProfile(uml);
- registerProfile(new ProfileJava(uml));
+ profileUML = new ProfileUML();
+ addToDefaultProfiles(profileUML);
+ registerProfile(profileUML);
+ registerProfile(new ProfileJava(profileUML));
registerProfile(new ProfileMeta());
} catch (ProfileException e) {
throw new RuntimeException(e);
@@ -190,7 +193,7 @@
public void removeProfile(Profile p) {
- if (p != null) {
+ if (p != null && p != profileUML) {
profiles.remove(p);
defaultProfiles.remove(p);
}
@@ -224,7 +227,7 @@
public void removeFromDefaultProfiles(Profile p) {
- if (p != null && profiles.contains(p)) {
+ if (p != null && p != profileUML && profiles.contains(p)) {
defaultProfiles.remove(p);
updateDefaultProfilesConfiguration();
}
@@ -261,7 +264,6 @@
}
}
-
public void refreshRegisteredProfiles() {
for (String dirName : searchDirectories) {
@@ -308,17 +310,7 @@
public Profile getUMLProfile() {
- for (Profile p : getRegisteredProfiles())
- if (p.getDisplayName() != null
- && p.getDisplayName().contains("UML"))
- return p;
- Profile p = null;
- try {
- p = new ProfileUML();
- } catch (ProfileException e) {
- throw new RuntimeException(e);
- }
- return p;
+ return profileUML;
}
}
Modified: trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProfile.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProfile.java?view=diff&rev=15360&p1=trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProfile.java&p2=trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProfile.java&r1=15359&r2=15360
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProfile.java (original)
+++ trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProfile.java 2008-07-24 03:41:33-0700
@@ -63,7 +63,7 @@
* The Tab where new profiles can be added and the registered ones can be
* activated or deactivated on current project
*
- * @author Marcos Aurélio
+ * @author Marcos Aur�lio
*/
public class ProjectSettingsTabProfile extends JPanel implements
GUISettingsTabInterface, ActionListener {
@@ -250,41 +250,47 @@
Profile selected = (Profile) modelUsed.getElementAt(usedList
.getSelectedIndex());
- List<Profile> dependents = getActiveDependents(selected);
- boolean remove = true;
-
- if (!dependents.isEmpty()) {
- String message = Translator.localize(
- "tab.profiles.confirmdeletewithdependencies",
- new Object[] { dependents });
- String title = Translator
- .localize("tab.profiles.confirmdeletewithdependencies.title");
- remove = (JOptionPane.showConfirmDialog(this, message,
- title, JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION);
- }
+ if (selected == ProfileFacade.getManager().getUMLProfile()) {
+ JOptionPane.showMessageDialog(this, Translator
+ .localize("tab.profiles.cantremoveuml"));
+ } else {
+ List<Profile> dependents = getActiveDependents(selected);
+ boolean remove = true;
- if (remove) {
- if (!ProfileFacade.getManager().getRegisteredProfiles()
- .contains(selected)
- && !ProfileFacade.getManager().getDefaultProfiles()
- .contains(selected)) {
- remove = (JOptionPane
- .showConfirmDialog(
- this,
- Translator
- .localize("tab.profiles.confirmdeleteunregistered"),
- Translator
- .localize("tab.profiles.confirmdeleteunregistered.title"),
- JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION);
+ if (!dependents.isEmpty()) {
+ String message = Translator.localize(
+ "tab.profiles.confirmdeletewithdependencies",
+ new Object[] {dependents});
+ String title = Translator
+ .localize("tab.profiles.confirmdeletewithdependencies.title");
+ remove = (JOptionPane.showConfirmDialog(this, message,
+ title, JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION);
}
if (remove) {
- modelUsed.removeElement(selected);
- modelAvailable.addElement(selected);
+ if (!ProfileFacade.getManager().getRegisteredProfiles()
+ .contains(selected)
+ && !ProfileFacade.getManager()
+ .getDefaultProfiles()
+ .contains(selected)) {
+ remove = (JOptionPane
+ .showConfirmDialog(
+ this,
+ Translator
+ .localize("tab.profiles.confirmdeleteunregistered"),
+ Translator
+ .localize("tab.profiles.confirmdeleteunregistered.title"),
+ JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION);
+ }
- for (Profile profile : dependents) {
- modelUsed.removeElement(profile);
- modelAvailable.addElement(profile);
+ if (remove) {
+ modelUsed.removeElement(selected);
+ modelAvailable.addElement(selected);
+
+ for (Profile profile : dependents) {
+ modelUsed.removeElement(profile);
+ modelAvailable.addElement(profile);
+ }
}
}
}
Modified: trunk/src/argouml-app/src/org/argouml/ui/SettingsTabProfile.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/ui/SettingsTabProfile.java?view=diff&rev=15360&p1=trunk/src/argouml-app/src/org/argouml/ui/SettingsTabProfile.java&p2=trunk/src/argouml-app/src/org/argouml/ui/SettingsTabProfile.java&r1=15359&r2=15360
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/ui/SettingsTabProfile.java (original)
+++ trunk/src/argouml-app/src/org/argouml/ui/SettingsTabProfile.java 2008-07-24 03:41:33-0700
@@ -63,7 +63,7 @@
/**
* The Tab containing the global settings for profiles
*
- * @author Marcos Aurélio
+ * @author Marcos Aur�lio
*/
public class SettingsTabProfile extends JPanel implements
GUISettingsTabInterface, ActionListener {
@@ -316,8 +316,14 @@
if (defaultList.getSelectedIndex() != -1) {
Profile selected = (Profile) modelUsd.getElementAt(defaultList
.getSelectedIndex());
- modelUsd.removeElement(selected);
- modelAvl.addElement(selected);
+
+ if (selected == ProfileFacade.getManager().getUMLProfile()) {
+ JOptionPane.showMessageDialog(this, Translator
+ .localize("tab.profiles.cantremoveuml"));
+ } else {
+ modelUsd.removeElement(selected);
+ modelAvl.addElement(selected);
+ }
}
} else if (arg0.getSource() == unregisterProfile) {
if (availableList.getSelectedIndex() != -1) {
Modified: trunk/src/argouml-app/tests/org/argouml/kernel/TestProjectWithProfiles.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/tests/org/argouml/kernel/TestProjectWithProfiles.java?view=diff&rev=15360&p1=trunk/src/argouml-app/tests/org/argouml/kernel/TestProjectWithProfiles.java&p2=trunk/src/argouml-app/tests/org/argouml/kernel/TestProjectWithProfiles.java&r1=15359&r2=15360
==============================================================================
--- trunk/src/argouml-app/tests/org/argouml/kernel/TestProjectWithProfiles.java (original)
+++ trunk/src/argouml-app/tests/org/argouml/kernel/TestProjectWithProfiles.java 2008-07-24 03:41:33-0700
@@ -33,6 +33,7 @@
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Collection;
+import java.util.List;
import junit.framework.TestCase;
@@ -92,16 +93,22 @@
/**
* Basic test that a new project contains a {@link ProfileConfiguration}
- * and that this contains at least the UML profile.
+ * and that this contains the default profiles.
*/
public void testCreatedProjectContainsProfileConfiguration() {
+ List<Profile> defaultProfiles
+ = ProfileFacade.getManager().getDefaultProfiles();
+
Project project = ProjectManager.getManager().makeEmptyProject();
ProfileConfiguration profileConfiguration =
project.getProfileConfiguration();
+
assertNotNull(profileConfiguration);
assertNotNull(profileConfiguration.getProfiles());
- assertTrue(profileConfiguration.getProfiles().contains(
- ProfileFacade.getManager().getUMLProfile()));
+
+ for (Profile profile : defaultProfiles) {
+ assertTrue(profileConfiguration.getProfiles().contains(profile));
+ }
}
/**
Modified: trunk/src/argouml-app/tests/org/argouml/profile/internal/TestProfileManagerImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/tests/org/argouml/profile/internal/TestProfileManagerImpl.java?view=diff&rev=15360&p1=trunk/src/argouml-app/tests/org/argouml/profile/internal/TestProfileManagerImpl.java&p2=trunk/src/argouml-app/tests/org/argouml/profile/internal/TestProfileManagerImpl.java&r1=15359&r2=15360
==============================================================================
--- trunk/src/argouml-app/tests/org/argouml/profile/internal/TestProfileManagerImpl.java (original)
+++ trunk/src/argouml-app/tests/org/argouml/profile/internal/TestProfileManagerImpl.java 2008-07-24 03:41:33-0700
@@ -24,14 +24,17 @@
package org.argouml.profile.internal;
+import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.Vector;
import junit.framework.TestCase;
import org.argouml.model.InitializeModel;
import org.argouml.profile.Profile;
+import org.argouml.profile.ProfileException;
import org.argouml.profile.ProfileManager;
/**
@@ -72,14 +75,29 @@
}
public void testRemoveDefaultProfile() {
- Profile umlProfile = manager.getProfileForClass(
- ProfileUML.class.getName());
- assertNotNull(umlProfile);
- assertTrue(manager.getRegisteredProfiles().contains(umlProfile));
- assertTrue(manager.getDefaultProfiles().contains(umlProfile));
- manager.removeProfile(umlProfile);
- assertFalse(manager.getRegisteredProfiles().contains(umlProfile));
- assertFalse(manager.getDefaultProfiles().contains(umlProfile));
+ Profile testProfile = new Profile() {
+
+ @Override
+ public String getDisplayName() {
+ return "Test Profile";
+ }
+
+ @Override
+ public Collection getProfilePackages() throws ProfileException {
+ return new Vector();
+ }
+
+ };
+
+ manager.registerProfile(testProfile);
+ assertTrue(manager.getRegisteredProfiles().contains(testProfile));
+
+ manager.addToDefaultProfiles(testProfile);
+ assertTrue(manager.getDefaultProfiles().contains(testProfile));
+
+ manager.removeProfile(testProfile);
+ assertFalse(manager.getRegisteredProfiles().contains(testProfile));
+ assertFalse(manager.getDefaultProfiles().contains(testProfile));
}
}
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.