Bug 13702 fixed: Problems with * prefix for modified files in SciNotes 35/16235/3
Calixte DENIZET [Tue, 24 Mar 2015 17:34:47 +0000 (18:34 +0100)]
Change-Id: Iccc822ae4bb19216f8a9f5144887e54bcc18c71f

scilab/CHANGES_5.5.X
scilab/modules/scinotes/src/java/org/scilab/modules/scinotes/SciNotes.java
scilab/modules/scinotes/src/java/org/scilab/modules/scinotes/ScilabEditorPane.java

index 055ba80..ef3bd80 100644 (file)
@@ -106,6 +106,8 @@ Scilab Bug Fixes
 
 * Bug #13695 fixed - Scilab used bash-specific features in scripts.
 
+* Bug #13702 fixed - Problems with * prefix for modified files in SciNotes fixed.
+
 * Bug #13712 fixed - Details added in strcat help page for strcat(strings, "", "r") case.
 
 * Bug #13725 fixed - Polyline was not correctly filled with big values.
index 74b9b4d..c5dc272 100644 (file)
@@ -1627,8 +1627,16 @@ public class SciNotes extends SwingScilabDockablePanel {
      * isContentModified().
      */
     public void updateTabTitle() {
+        updateTabTitle(getTabPane().getSelectedIndex());
+    }
+
+    /**
+     * Add or remove '*' prefix in tab title (corresponding to the given index) according to
+     * isContentModified().
+     */
+    public void updateTabTitle(int index) {
         StringBuffer newTitle = new StringBuffer();
-        ScilabEditorPane currentTextPane = getTextPane();
+        ScilabEditorPane currentTextPane = getTextPane(index);
         if (((ScilabDocument) currentTextPane.getDocument()).isContentModified()) {
             newTitle.append('*');
         }
@@ -1639,14 +1647,14 @@ public class SciNotes extends SwingScilabDockablePanel {
             newTitle.append(f.getName());
         } catch (NullPointerException e) { // not a file name, no path prefix to
             // remove, but maybe a '*'
-            textPaneName = getTabPane().getScilabTitleAt(getTabPane().getSelectedIndex());
+            textPaneName = getTabPane().getScilabTitleAt(index);
             if (textPaneName.charAt(0) == '*') {
                 newTitle.append(textPaneName.substring(1, textPaneName.length()));
             } else {
                 newTitle.append(textPaneName);
             }
         }
-        getTabPane().setTitleAt(getTabPane().getSelectedIndex(), newTitle.toString());
+        getTabPane().setTitleAt(index, newTitle.toString());
     }
 
     /**
@@ -1831,6 +1839,18 @@ public class SciNotes extends SwingScilabDockablePanel {
         }
     }
 
+    public int getTextPaneIndex(ScilabEditorPane sep) {
+        int n = tabPane.getTabCount();
+        for (int i = 0; i < n; ++i) {
+            ScilabEditorPane pane = getTextPane(i);
+            if (pane == sep || pane.getOtherPaneInSplit() == sep) {
+                return i;
+            }
+        }
+
+        return -1;
+    }
+
     /**
      * Get current text component. If the window is splitted, then return the
      * focused text component.
index f95c60f..44ca5df 100644 (file)
@@ -815,7 +815,10 @@ public class ScilabEditorPane extends JEditorPane implements Highlighter.Highlig
      */
     public void updateTitle() {
         if (editor != null) {
-            editor.updateTabTitle();
+            int index = editor.getTextPaneIndex(this);
+            if (index != -1) {
+                editor.updateTabTitle(index);
+            }
         }
     }