Author: closettop_nightlybuild
Date: 2012-08-03 06:00:53-0700
New Revision: 19897

Modified:
   trunk/src/argouml-app/src/org/argouml/i18n/Translator.java
   trunk/src/argouml-app/src/org/argouml/i18n/action.properties
   trunk/src/argouml-app/src/org/argouml/i18n/button.properties
   trunk/src/argouml-app/src/org/argouml/i18n/dialog.properties
   trunk/src/argouml-app/src/org/argouml/i18n/menu.properties
   trunk/src/argouml-app/src/org/argouml/ui/cmd/GenericArgoMenuBar.java
   
trunk/src/argouml-app/src/org/argouml/uml/generator/ui/ClassGenerationDialog.java
   trunk/src/argouml-app/src/org/argouml/uml/ui/ActionGenerateAll.java

Log:
Rename Generate all classes to Generate code from current diagram.

The Generate selected classes is moved to the menu opened.

This is the patch from issue 5790 with some slight modifications.

Contributed by: shurakai, elbedd
Change-Id: Ic774c04225598d711741a83a130a360d8586266a

Modified: trunk/src/argouml-app/src/org/argouml/i18n/Translator.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/i18n/Translator.java?view=diff&pathrev=19897&r1=19896&r2=19897
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/i18n/Translator.java  (original)
+++ trunk/src/argouml-app/src/org/argouml/i18n/Translator.java  2012-08-03 
06:00:53-0700
@@ -378,6 +378,7 @@
      * @return the localized String with inserted arguments
      */
     public static String messageFormat(String key, Object[] args) {
-        return new MessageFormat(localize(key)).format(args);
+        String localized = localize(key);
+        return new MessageFormat(localized).format(args);
     }
 }

Modified: trunk/src/argouml-app/src/org/argouml/i18n/action.properties
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/i18n/action.properties?view=diff&pathrev=19897&r1=19896&r2=19897
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/i18n/action.properties        
(original)
+++ trunk/src/argouml-app/src/org/argouml/i18n/action.properties        
2012-08-03 06:00:53-0700
@@ -97,7 +97,8 @@
 action.find = Find...
 action.generate-all-classes = Generate All Classes...
 action.generate-code-for-project = Generate Code for Project...
-action.generate-selected-classes = Generate Selected Classes...
+action.generate-code = Generate code from current diagram...
+action.generate-selected-classes = Generate Selected Classes
 action.goto-checklist = Checklist
 action.goto-constraints = Constraints
 action.goto-diagram = Goto Diagram...
@@ -196,8 +197,7 @@
 action.set-source-path = Set Source Path...
 action.set-minimum-size = Size To Fit Contents
 action.settings = Settings...
-action.settings-for-project-code-generation = Settings for Generate for \
-        Project...
+action.settings-for-project-code-generation = Settings for project code 
generation...
 action.setting-size=Setting size for {0}
 action.show-all-compartments = Show All Compartments
 action.show-attribute-compartment = Show Attribute Compartment

Modified: trunk/src/argouml-app/src/org/argouml/i18n/button.properties
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/i18n/button.properties?view=diff&pathrev=19897&r1=19896&r2=19897
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/i18n/button.properties        
(original)
+++ trunk/src/argouml-app/src/org/argouml/i18n/button.properties        
2012-08-03 06:00:53-0700
@@ -214,6 +214,7 @@
 button.select = Select
 button.select-all = Select All
 button.select-all.mnemonic = A
+button.select-currently-selected = Select currently selected
 button.select-none = Select None
 button.select-none.mnemonic = N
 button.sequence-contract = Remove Vertical Space in Diagram

Modified: trunk/src/argouml-app/src/org/argouml/i18n/dialog.properties
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/i18n/dialog.properties?view=diff&pathrev=19897&r1=19896&r2=19897
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/i18n/dialog.properties        
(original)
+++ trunk/src/argouml-app/src/org/argouml/i18n/dialog.properties        
2012-08-03 06:00:53-0700
@@ -61,6 +61,7 @@
 dialog.browse.use-clarifier.if-only-one = If Only One
 dialog.browse.use-clarifier.never = Never
 dialog.button.ok = OK
+dialog.error.generator.nothing-selected = There is nothing selected in the 
diagram that could be generated
 dialog.error.file.version.error = The file selected is from a more up-to-date 
version \
  of ArgoUML and can't be loaded by this version. It has been saved with 
ArgoUML \
  version {0}. Please load with that version of ArgoUML or a later one.

Modified: trunk/src/argouml-app/src/org/argouml/i18n/menu.properties
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/i18n/menu.properties?view=diff&pathrev=19897&r1=19896&r2=19897
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/i18n/menu.properties  (original)
+++ trunk/src/argouml-app/src/org/argouml/i18n/menu.properties  2012-08-03 
06:00:53-0700
@@ -209,10 +209,11 @@
 menu.generation = Generation
 menu.generation.mnemonic = G
 
-menu.item.generate-selected-classes.mnemonic = S
-menu.item.generate-all-classes.mnemonic = A
-menu.item.generate-code-for-project.mnemonic = P
-menu.item.settings-for-project-code-generation.mnemonic = E
+#menu.item.generate-selected-classes.mnemonic = S
+#menu.item.generate-all-classes.mnemonic = A
+menu.item.action.generate-code.mnemonic = D
+menu.item.action.generate-code-for-project.mnemonic = P
+menu.item.action.settings-for-project-code-generation.mnemonic = E
 
 # ----------------------menu Critique
 menu.critique = Critique

Modified: trunk/src/argouml-app/src/org/argouml/ui/cmd/GenericArgoMenuBar.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/ui/cmd/GenericArgoMenuBar.java?view=diff&pathrev=19897&r1=19896&r2=19897
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/ui/cmd/GenericArgoMenuBar.java        
(original)
+++ trunk/src/argouml-app/src/org/argouml/ui/cmd/GenericArgoMenuBar.java        
2012-08-03 06:00:53-0700
@@ -81,7 +81,6 @@
 import org.argouml.uml.ui.ActionDeleteModelElements;
 import org.argouml.uml.ui.ActionDeploymentDiagram;
 import org.argouml.uml.ui.ActionGenerateAll;
-import org.argouml.uml.ui.ActionGenerateOne;
 import org.argouml.uml.ui.ActionGenerateProjectCode;
 import org.argouml.uml.ui.ActionGenerationSettings;
 import org.argouml.uml.ui.ActionImportFromSources;
@@ -873,21 +872,18 @@
 
         generate = add(new JMenu(menuLocalize("Generation")));
         setMnemonic(generate, "Generation");
-        JMenuItem genOne = generate.add(new ActionGenerateOne());
-        setMnemonic(genOne, "Generate Selected Classes");
-        ShortcutMgr.assignAccelerator(genOne, ShortcutMgr.ACTION_GENERATE_ONE);
         JMenuItem genAllItem = generate.add(new ActionGenerateAll());
-        setMnemonic(genAllItem, "Generate all classes");
+        setMnemonic(genAllItem, "action.generate-code");
         ShortcutMgr.assignAccelerator(genAllItem,
                 ShortcutMgr.ACTION_GENERATE_ALL_CLASSES);
         generate.addSeparator();
         JMenuItem genProject = generate.add(new ActionGenerateProjectCode());
-        setMnemonic(genProject, "Generate code for project");
+        setMnemonic(genProject, "action.generate-code-for-project");
         ShortcutMgr.assignAccelerator(genProject,
                 ShortcutMgr.ACTION_GENERATE_PROJECT_CODE);
         JMenuItem generationSettings = generate
                 .add(new ActionGenerationSettings());
-        setMnemonic(generationSettings, "Settings for project code 
generation");
+        setMnemonic(generationSettings, 
"action.settings-for-project-code-generation");
         ShortcutMgr.assignAccelerator(generationSettings,
                 ShortcutMgr.ACTION_GENERATION_SETTINGS);
         // generate.add(Actions.GenerateWeb);

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/generator/ui/ClassGenerationDialog.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/generator/ui/ClassGenerationDialog.java?view=diff&pathrev=19897&r1=19896&r2=19897
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/generator/ui/ClassGenerationDialog.java
   (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/generator/ui/ClassGenerationDialog.java
   2012-08-03 06:00:53-0700
@@ -41,7 +41,6 @@
 import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.Dimension;
-import java.awt.FlowLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.ArrayList;
@@ -60,6 +59,7 @@
 import javax.swing.JComboBox;
 import javax.swing.JFileChooser;
 import javax.swing.JLabel;
+import javax.swing.JOptionPane;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JTable;
@@ -71,10 +71,12 @@
 import org.argouml.i18n.Translator;
 import org.argouml.model.Model;
 import org.argouml.notation.Notation;
+import org.argouml.ui.targetmanager.TargetManager;
 import org.argouml.uml.generator.CodeGenerator;
 import org.argouml.uml.generator.GeneratorManager;
 import org.argouml.uml.generator.Language;
 import org.argouml.util.ArgoDialog;
+import org.tigris.gef.presentation.Fig;
 import org.tigris.swidgets.Dialog;
 
 /**
@@ -171,13 +173,45 @@
                 classTable.repaint();
             }
         });
+        
+        JButton selectCurrentlySelectedButton = new JButton();
+        nameButton(selectCurrentlySelectedButton, 
"button.select-currently-selected");
+        selectCurrentlySelectedButton.addActionListener(new ActionListener() {
+           /**
+            * Action performed after clicking the button 
+            * @param e
+            * @see 
java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
+            */
+           public void actionPerformed(ActionEvent e) {
+               List classes = new ArrayList();
+               Collection targets = TargetManager.getInstance().getTargets();
+               
+               // TODO: Should be improved so that it's recognized whether 
there is something selected that can actually be generated
+               if (targets.size() < 1) { // Nothing selected in the diagram
+                   JOptionPane.showMessageDialog(null, 
Translator.localize("dialog.error.generator.nothing-selected"),
+                           Translator.localize("dialog.error.title"), 
JOptionPane.ERROR_MESSAGE);
+               }
+               for (Object target : targets) {
+                   if (target instanceof Fig) {
+                       target = ((Fig) target).getOwner();
+                   }
+                   if (Model.getFacade().isAClass(target)
+                       || Model.getFacade().isAInterface(target)) {
+                       classes.add(target);
+                   }
+               }
+               classTableModel.check(classes);
+               classTable.repaint();
+           }
+        });
 
-        JPanel selectPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 
0));
+        JPanel selectPanel = new JPanel(new BorderLayout());
         selectPanel.setBorder(BorderFactory.createEmptyBorder(8, 0, 0, 0));
         JPanel selectButtons = new JPanel(new BorderLayout(5, 0));
         selectButtons.add(selectAllButton, BorderLayout.CENTER);
         selectButtons.add(selectNoneButton, BorderLayout.EAST);
-        selectPanel.add(selectButtons);
+        selectPanel.add(selectCurrentlySelectedButton, BorderLayout.WEST);
+        selectPanel.add(selectButtons, BorderLayout.EAST);
 
         JPanel centerPanel = new JPanel(new BorderLayout(0, 2));
         centerPanel.add(new JLabel(Translator
@@ -696,6 +730,29 @@
             }
             getOkButton().setEnabled(value);
         }
+        
+        /**
+         * Checks nodes
+         * @param nodes These will be checked
+         */
+        public void check(List nodes) {
+            int rows = getRowCount();
+            int checks = getLanguagesCount();
+
+            for (int i = 0; i < rows; ++i) {
+                Object cls = classes.get(i);
+                for (int j = 0; j < checks; ++j) {
+                    if (nodes.contains(cls)  && (j == languageHistory)) {
+                        checked[j].add(cls);
+                    } else {
+                        checked[j].remove(cls);
+                    }
+                }
+            }
+            if (++languageHistory >= checks) {
+                languageHistory = 0;
+            }
+        }
 
         /**
          * The UID.

Modified: trunk/src/argouml-app/src/org/argouml/uml/ui/ActionGenerateAll.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/ui/ActionGenerateAll.java?view=diff&pathrev=19897&r1=19896&r2=19897
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/ui/ActionGenerateAll.java 
(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/ui/ActionGenerateAll.java 
2012-08-03 06:00:53-0700
@@ -72,10 +72,10 @@
      * Constructor.
      */
     public ActionGenerateAll() {
-        super(Translator.localize("action.generate-all-classes"), null);
+        super(Translator.localize("action.generate-code"), null);
         // Set the tooltip string:
         putValue(Action.SHORT_DESCRIPTION, 
-                Translator.localize("action.generate-all-classes"));
+                Translator.localize("action.generate-code"));
     }

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2994794

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to