You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2010/02/10 14:33:54 UTC

svn commit: r908495 - in /pivot/trunk: tutorials/src/org/apache/pivot/tutorials/filebrowsing/ tutorials/src/org/apache/pivot/tutorials/menus/ wtk-terra/src/org/apache/pivot/wtk/skin/terra/ wtk/src/org/apache/pivot/wtk/

Author: gbrown
Date: Wed Feb 10 13:33:53 2010
New Revision: 908495

URL: http://svn.apache.org/viewvc?rev=908495&view=rev
Log:
Make FileBrowserSheet WTKX-compatible.

Modified:
    pivot/trunk/tutorials/src/org/apache/pivot/tutorials/filebrowsing/FileBrowsing.java
    pivot/trunk/tutorials/src/org/apache/pivot/tutorials/menus/MenuBars.java
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/Dialog.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheet.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/Sheet.java

Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/filebrowsing/FileBrowsing.java
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/filebrowsing/FileBrowsing.java?rev=908495&r1=908494&r2=908495&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/filebrowsing/FileBrowsing.java (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/filebrowsing/FileBrowsing.java Wed Feb 10 13:33:53 2010
@@ -59,13 +59,13 @@
 
                 String mode = (String)selection.getUserData().get("mode");
                 FileBrowserSheet.Mode fileBrowserSheetMode = FileBrowserSheet.Mode.valueOf(mode.toUpperCase());
-                final FileBrowserSheet fileBrowserSheet = new FileBrowserSheet(fileBrowserSheetMode);
+                final FileBrowserSheet fileBrowserSheet = new FileBrowserSheet();
 
                 if (fileBrowserSheetMode == FileBrowserSheet.Mode.SAVE_AS) {
                     fileBrowserSheet.setSelectedFile(new File(fileBrowserSheet.getRootDirectory(), "New File"));
                 }
 
-                fileBrowserSheet.open(window, new SheetCloseListener() {
+                fileBrowserSheet.open(window, fileBrowserSheetMode, new SheetCloseListener() {
                     @Override
                     public void sheetClosed(Sheet sheet) {
                         if (sheet.getResult()) {

Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/menus/MenuBars.java
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/menus/MenuBars.java?rev=908495&r1=908494&r2=908495&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/menus/MenuBars.java (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/menus/MenuBars.java Wed Feb 10 13:33:53 2010
@@ -122,7 +122,7 @@
         Action.getNamedActions().put("fileOpen", new Action() {
             @Override
             public void perform() {
-                fileBrowserSheet.open(window);
+                fileBrowserSheet.open(window, FileBrowserSheet.Mode.OPEN);
             }
         });
 
@@ -159,7 +159,7 @@
 
         tabPane = (TabPane)wtkxSerializer.get("tabPane");
 
-        fileBrowserSheet = new FileBrowserSheet(FileBrowserSheet.Mode.OPEN);
+        fileBrowserSheet = new FileBrowserSheet();
 
         window.open(display);
     }

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java?rev=908495&r1=908494&r2=908495&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java Wed Feb 10 13:33:53 2010
@@ -83,8 +83,6 @@
         fileBrowserSheet.setMinimumPreferredWidth(360);
         fileBrowserSheet.setMinimumPreferredHeight(180);
 
-        final FileBrowserSheet.Mode mode = fileBrowserSheet.getMode();
-
         // Load the sheet content
         Resources resources;
         try {
@@ -117,9 +115,6 @@
             }
         });
 
-        fileBrowser.getStyles().put("keyboardFolderTraversalEnabled",
-            (mode != FileBrowserSheet.Mode.SAVE_TO));
-
         fileBrowser.getFileBrowserListeners().add(new FileBrowserListener.Adapter() {
             @Override
             public void rootDirectoryChanged(FileBrowser fileBrowser,
@@ -186,6 +181,8 @@
             public boolean mouseClick(Component component, Mouse.Button button, int x, int y, int count) {
                 boolean consumed = super.mouseClick(component, button, x, y, count);
 
+                FileBrowserSheet.Mode mode = fileBrowserSheet.getMode();
+
                 if (count == 1) {
                     file = fileBrowser.getFileAt(x, y);
                 } else if (count == 2) {
@@ -226,36 +223,8 @@
         // Add this as a file browser sheet listener
         fileBrowserSheet.getFileBrowserSheetListeners().add(this);
 
-        // Initialize layout and file browser selection state
-        switch (mode) {
-            case OPEN: {
-                saveAsBoxPane.setVisible(false);
-                fileBrowser.setMultiSelect(false);
-                break;
-            }
-
-            case OPEN_MULTIPLE: {
-                saveAsBoxPane.setVisible(false);
-                fileBrowser.setMultiSelect(true);
-                break;
-            }
-
-            case SAVE_AS: {
-                saveAsBoxPane.setVisible(true);
-                fileBrowser.setMultiSelect(false);
-                break;
-            }
-
-            case SAVE_TO: {
-                saveAsBoxPane.setVisible(false);
-                fileBrowser.setMultiSelect(false);
-                break;
-            }
-        }
-
         rootDirectoryChanged(fileBrowserSheet, null);
         selectedFilesChanged(fileBrowserSheet, null);
-        disabledFileFilterChanged(fileBrowserSheet, null);
     }
 
     public boolean isHideDisabledFiles() {
@@ -271,6 +240,41 @@
         super.windowOpened(window);
 
         if (window.isOpen()) {
+            // Initialize layout and file browser selection state
+            FileBrowserSheet fileBrowserSheet = (FileBrowserSheet)window;
+            FileBrowserSheet.Mode mode = fileBrowserSheet.getMode();
+
+            fileBrowser.getStyles().put("keyboardFolderTraversalEnabled",
+                (mode != FileBrowserSheet.Mode.SAVE_TO));
+
+            switch (mode) {
+                case OPEN: {
+                    saveAsBoxPane.setVisible(false);
+                    fileBrowser.setMultiSelect(false);
+                    break;
+                }
+
+                case OPEN_MULTIPLE: {
+                    saveAsBoxPane.setVisible(false);
+                    fileBrowser.setMultiSelect(true);
+                    break;
+                }
+
+                case SAVE_AS: {
+                    saveAsBoxPane.setVisible(true);
+                    fileBrowser.setMultiSelect(false);
+                    break;
+                }
+
+                case SAVE_TO: {
+                    saveAsBoxPane.setVisible(false);
+                    fileBrowser.setMultiSelect(false);
+                    break;
+                }
+            }
+
+            disabledFileFilterChanged(fileBrowserSheet, null);
+
             window.requestFocus();
         }
     }
@@ -361,25 +365,29 @@
         FileBrowserSheet fileBrowserSheet = (FileBrowserSheet)getComponent();
 
         FileBrowserSheet.Mode mode = fileBrowserSheet.getMode();
-        Sequence<File> selectedFiles = fileBrowser.getSelectedFiles();
+        if (mode != null) {
+            Sequence<File> selectedFiles = fileBrowser.getSelectedFiles();
 
-        switch (mode) {
-            case OPEN:
-            case OPEN_MULTIPLE: {
-                okButton.setEnabled(selectedFiles.getLength() > 0
-                    && selectedDirectoryCount == 0);
-                break;
-            }
+            switch (mode) {
+                case OPEN:
+                case OPEN_MULTIPLE: {
+                    okButton.setEnabled(selectedFiles.getLength() > 0
+                        && selectedDirectoryCount == 0);
+                    break;
+                }
 
-            case SAVE_AS: {
-                okButton.setEnabled(saveAsTextInput.getTextLength() > 0);
-                break;
-            }
+                case SAVE_AS: {
+                    okButton.setEnabled(saveAsTextInput.getTextLength() > 0);
+                    break;
+                }
 
-            case SAVE_TO: {
-                okButton.setEnabled(selectedDirectoryCount > 0);
-                break;
+                case SAVE_TO: {
+                    okButton.setEnabled(selectedDirectoryCount > 0);
+                    break;
+                }
             }
+        } else {
+            okButton.setEnabled(false);
         }
     }
 }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Dialog.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Dialog.java?rev=908495&r1=908494&r2=908495&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/Dialog.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Dialog.java Wed Feb 10 13:33:53 2010
@@ -143,13 +143,16 @@
             throw new IllegalArgumentException("Modal dialogs must have an owner.");
         }
 
-        super.open(display, owner);
+        this.modal = modal;
+        this.dialogCloseListener = dialogCloseListener;
+
+        result = false;
 
-        if (isOpen()) {
-            this.modal = modal;
-            this.dialogCloseListener = dialogCloseListener;
+        super.open(display, owner);
 
-            result = false;
+        if (!isOpen()) {
+            this.modal = false;
+            this.dialogCloseListener = null;
         }
     }
 

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheet.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheet.java?rev=908495&r1=908494&r2=908495&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheet.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheet.java Wed Feb 10 13:33:53 2010
@@ -75,13 +75,7 @@
 
     private FileBrowserSheetListenerList fileBrowserSheetListeners = new FileBrowserSheetListenerList();
 
-    public FileBrowserSheet(Mode mode) {
-        if (mode == null) {
-            throw new IllegalArgumentException("mode is null.");
-        }
-
-        this.mode = mode;
-
+    public FileBrowserSheet() {
         String userHome = System.getProperty("user.home");
         rootDirectory = new File(userHome);
 
@@ -213,6 +207,50 @@
         }
     }
 
+    public final void open(Window owner, Mode mode) {
+        if (owner == null) {
+            throw new IllegalArgumentException("owner is null");
+        }
+
+        open(owner.getDisplay(), owner, mode, null);
+    }
+
+    public final void open(Window owner, Mode mode, SheetCloseListener sheetCloseListener) {
+        if (owner == null) {
+            throw new IllegalArgumentException("owner is null");
+        }
+
+        open(owner.getDisplay(), owner, mode, sheetCloseListener);
+    }
+
+    @Override
+    public final void open(Display display, Window owner, SheetCloseListener sheetCloseListener) {
+        open(display, owner, Mode.OPEN, sheetCloseListener);
+    }
+
+    public void open(Display display, Window owner, Mode mode, SheetCloseListener sheetCloseListener) {
+        if (mode == null) {
+            throw new IllegalArgumentException("mode is null.");
+        }
+
+        this.mode = mode;
+
+        super.open(display, owner, sheetCloseListener);
+
+        if (!isOpen()) {
+            this.mode = null;
+        }
+    }
+
+    @Override
+    public void close(boolean result) {
+        super.close(result);
+
+        if (isClosed()) {
+            mode = null;
+        }
+    }
+
     public ListenerList<FileBrowserSheetListener> getFileBrowserSheetListeners() {
         return fileBrowserSheetListeners;
     }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Sheet.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Sheet.java?rev=908495&r1=908494&r2=908495&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/Sheet.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Sheet.java Wed Feb 10 13:33:53 2010
@@ -96,10 +96,12 @@
             throw new IllegalArgumentException("Sheets must have an owner.");
         }
 
+        this.sheetCloseListener = sheetCloseListener;
+
         super.open(display, owner);
 
-        if (isOpen()) {
-            this.sheetCloseListener = sheetCloseListener;
+        if (!isOpen()) {
+            this.sheetCloseListener = null;
         }
     }