Reorder menus and disable few menuitems when needed 70/1570/3
Calixte DENIZET [Mon, 9 Aug 2010 15:40:52 +0000 (17:40 +0200)]
Change-Id: I91fb30ec9a5f2448c3400dbe09e3827b48909f75

scilab/modules/scinotes/etc/keysConfiguration.xml
scilab/modules/scinotes/etc/scinotesGUIConfiguration.xml
scilab/modules/scinotes/src/java/org/scilab/modules/scinotes/actions/GenerateHelpFromFunctionAction.java
scilab/modules/scinotes/src/java/org/scilab/modules/scinotes/actions/OverwriteAction.java

index b5c7ad4..3aef444 100644 (file)
@@ -30,7 +30,6 @@
   <entry key="OpenSourceFileOnKeywordAction">control shift O</entry>
   <entry key="SaveAction">control S</entry>
   <entry key="SaveAsAction">control shift S</entry>
-  <entry key="OverwriteAction">control shift M</entry>
   <entry key="ReloadAction">control shift R</entry>
   <entry key="PrintPreviewAction">control shift P</entry>
   <entry key="PrintAction">control P</entry>
index 644d464..a2f5748 100644 (file)
@@ -4,21 +4,19 @@
 
   <MenuBar>
     <menu label="File" mnemonic="F">
+      <menuitem action="RecentFileAction" label="Recent Files"/>
       <menuitem action="NewAction" label="New"/>
       <menuitem action="OpenAction" label="Open"/>
       <menuitem action="OpenFileInAction" label="Open file in ...;Add a directory;Remove last directory"/>
+      <menuitem action="ReloadAction" label="Reload"/>
       <menuitem action="OpenSourceFileOnKeywordAction" label="Open function source file"/>
       <menuitem action="OpenURLAction" label="Open URL"/>
-      <menuitem action="RecentFileAction" label="Recent Files"/>
       <separator/>
       <menuitem action="SaveAction" label="Save"/>
       <menuitem action="SaveAsAction" label="Save as"/>
       <menuitem action="SaveAllAction" label="Save All"/>
-      <separator/>
       <menuitem action="OverwriteAction" label="Overwrite"/>
-      <menuitem action="ReloadAction" label="Reload"/>
       <separator/>
-      <menuitem action="PageSetupAction" label="Page Setup"/>
       <menuitem action="PrintPreviewAction" label="Print Preview"/>
       <menuitem action="PrintAction" label="Print"/>
       <separator/>
@@ -26,7 +24,6 @@
       <menuitem action="CloseAllAction" label="Close All"/>
       <menuitem action="CloseAllButThisAction" label="Close All But This"/>
       <separator/>
-      <menuitem action="RestoreOpenedFilesAction" label="Restore opened files on start-up"/>
       <menuitem action="ExitAction" label="Exit"/>
     </menu>
 
       <menuitem action="CutAction" label="Cut"/>
       <menuitem action="CopyAction" label="Copy"/>
       <menuitem action="PasteAction" label="Paste"/>
+      <menuitem action="DeleteAction" label="Delete"/>
       <separator/>
       <menuitem action="SelectAllAction" label="Select All"/>
-      <menuitem action="DeleteAction" label="Delete"/>
-    </menu>
-
-    <menu label="Tools" mnemonic="T">
-      <menuitem action="ActivateHelpOnTypingAction" label="Help on typing"/>
       <separator/>
-      <menuitem action="OpenTabInNewWindowAction" label="Clone tab in new window"/>
-      <menuitem action="CCloseTabInNewWindowAction" label="Clone and close tab"/>
+      <menuitem action="TabifyAction" label="Shift Right"/>
+      <menuitem action="UnTabifyAction" label="Shift Left"/>
       <separator/>
       <menuitem action="CommentAction" label="Comment Selection"/>
       <menuitem action="UnCommentAction" label="Uncomment Selection"/>
       <separator/>
       <menuitem action="IndentAction" label="Correct Indentation"/>
-      <menuitem action="TabifyAction" label="Shift Right"/>
-      <menuitem action="UnTabifyAction" label="Shift Left"/>
-      <separator/>
-      <menuitem action="GenerateHelpFromFunctionAction" label="Generate help from function"/>
-      <separator/>
-      <menuitem action="RemoveTrailingWhiteAction" label="Remove trailing whitespaces"/>
+      <menuitem action="RemoveTrailingWhiteAction" label="Remove trailing spaces"/>
+      <menuitem action="GenerateHelpFromFunctionAction" label="Generate comments for help_from_sci"/>
     </menu>
 
-    <menu label="Search" mnemonic="S">
+    <menu label="Search" mnemonic="H">
       <menuitem action="FindAction" label="Find/Replace"/>
       <menuitem action="FindNextAction" label="Find Next"/>
       <menuitem action="FindPreviousAction" label="Find Previous"/>
+      <separator/>
       <menuitem action="CodeNavigatorAction" label="Code Navigator"/>
     </menu>
 
-    <menu label="View" mnemonic="V">
-      <menuitem action="HighlightCurrentLineAction" label="Highlight current line"/>
+    <menu label="Preferences" mnemonic="P">
       <menuitem action="LineNumbersAction" label="Line numbering;Off;Normal;Whereami compatible"/>
-      <menuitem action="SplitAction" label="Split View;Off;Horizontally;Vertically"/>
+      <menuitem action="EncodingAction" label="Encoding"/>
+      <menuitem action="EndOfLineAction" label="Line Endings"/>
+      <menuitem action="PageSetupAction" label="Page Setup"/>
+      <separator/>
+      <menuitem action="ActivateHelpOnTypingAction" label="Help on typing"/>
+      <menuitem action="AutoIndentAction" label="Enable Auto Reformat"/>
+      <menuitem action="HighlightCurrentLineAction" label="Highlight current line"/>
       <separator/>
       <menuitem action="SetColorsAction" label="Set Colors"/>
       <menuitem action="SetFontAction" label="Set Font"/>
       <menuitem action="ResetFontAction" label="Reset default font"/>
+      <separator/>
+      <menuitem action="RestoreOpenedFilesAction" label="Restore opened files on start-up"/>
     </menu>
 
-    <menu label="Document" mnemonic="D">
-      <menuitem action="EncodingAction" label="Encoding"/>
-      <menuitem action="EndOfLineAction" label="Line Endings"/>
+    <menu label="Window" mnemonic="N">
+      <menuitem action="OpenTabInNewWindowAction" label="Copy tab in new window"/>
+      <menuitem action="CCloseTabInNewWindowAction" label="Detach tab in new window"/>
       <separator/>
-      <menuitem action="AutoIndentAction" label="Enable Auto Reformat"/>
-    </menu>
+      <menuitem action="CopySelectionInNewTabAction" label="Copy selection in a new tab"/>
+      <separator/>
+      <menuitem action="SplitAction" label="Split View;Off;Horizontally;Vertically"/>
+  </menu>
 
-    <menu label="Execute" mnemonic="E">
-      <menuitem action="LoadIntoScilabAction" label="Load Into Scilab"/>
-      <menuitem action="EvaluateSelectionAction" label="Evaluate Selection;Evaluate from beginning"/>
-      <menuitem action="ExecuteFileIntoScilabAction" label="Execute File Into Scilab"/>
+    <menu label="Execute" mnemonic="X">
+      <menuitem action="ExecuteFileIntoScilabAction" label="... file with no echo"/>
+      <menuitem action="LoadIntoScilabAction" label="... file with echo"/>
+      <menuitem action="EvaluateSelectionAction" label="... the selection with echo;... until the caret, with echo"/>
     </menu>
 
     <menu label="?">
@@ -98,7 +97,7 @@
   </MenuBar>
 
   <RightClickMenu>
-    <menuitem action="EvaluateSelectionAction" label="Evaluate Selection;Evaluate from beginning"/>
+    <menuitem action="EvaluateSelectionAction" label="Evaluate Selection with echo;Evaluate until the caret, with echo"/>
     <menuitem action="CopySelectionInNewTabAction" label="Copy selection in a new tab"/>
     <menuitem action="SciNotesCompletionAction" label="Complete"/>
     <separator/>
     <button action="OpenAction" tooltip="Open" icon="document-open.png"/>
 
     <!-- The second token of the button OpenFileInAction is the full path of the directory
-        where to open files.
-        The shortcuts SCI or MODULES can be used (not in path but alone) -->
+         where to open files.
+         The shortcuts SCI or MODULES can be used (not in path but alone) -->
     <button action="OpenFileInAction" tooltip="Open in ;MODULES" icon="document-open-sci.png"/>
 
     <separator/>
index cdc9459..7c95648 100644 (file)
 
 package org.scilab.modules.scinotes.actions;
 
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
 import java.util.List;
 
+import javax.swing.JMenuItem;
 import javax.swing.KeyStroke;
 import javax.swing.text.Element;
 import javax.swing.text.BadLocationException;
@@ -115,7 +118,17 @@ public class GenerateHelpFromFunctionAction extends DefaultAction {
      * @param key Keystroke
      * @return MenuItem
      */
-    public static MenuItem createMenu(String label, SciNotes editor, KeyStroke key) {
-        return createMenu(label, null, new GenerateHelpFromFunctionAction(label, editor), key);
+    public static MenuItem createMenu(String label, final SciNotes editor, KeyStroke key) {
+        final MenuItem menuitem = createMenu(label, null, new GenerateHelpFromFunctionAction(label, editor), key);
+        ((JMenuItem) menuitem.getAsSimpleMenuItem()).addPropertyChangeListener(new PropertyChangeListener() {
+                public void propertyChange(PropertyChangeEvent e) {
+                    Element root = editor.getTextPane().getDocument().getDefaultRootElement();
+                    int pos = editor.getTextPane().getCaretPosition();
+                    ScilabDocument.ScilabLeafElement elem = (ScilabDocument.ScilabLeafElement) root.getElement(root.getElementIndex(pos));
+                    menuitem.setEnabled(elem.isFunction());
+                }
+            });
+
+        return menuitem;
     }
 }
index 2731cf7..bfd5c09 100644 (file)
@@ -12,6 +12,9 @@
 
 package org.scilab.modules.scinotes.actions;
 
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import javax.swing.JMenuItem;
 import javax.swing.KeyStroke;
 
 import org.scilab.modules.gui.menuitem.MenuItem;
@@ -40,8 +43,15 @@ public final class OverwriteAction extends DefaultAction {
      * @param key KeyStroke
      * @return MenuItem
      */
-    public static MenuItem createMenu(String label, SciNotes editor, KeyStroke key) {
-        return createMenu(label, null, new OverwriteAction(label, editor), key);
+    public static MenuItem createMenu(String label, final SciNotes editor, KeyStroke key) {
+        final MenuItem menuitem = createMenu(label, null, new OverwriteAction(label, editor), key);
+        ((JMenuItem) menuitem.getAsSimpleMenuItem()).addPropertyChangeListener(new PropertyChangeListener() {
+                public void propertyChange(PropertyChangeEvent e) {
+                    menuitem.setEnabled(editor.getTextPane().checkExternalModif());
+                }
+            });
+
+        return menuitem;
     }
 
     /**