diff options
author | Stephan Schwaer | 2015-08-10 17:14:52 +0200 |
---|---|---|
committer | Stephan Schwaer | 2015-08-10 17:14:52 +0200 |
commit | 970b756032307d867a0e7929feddb4f38f20b2dc (patch) | |
tree | 15602bad0269c51620ffa771770ee329e2a861c6 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper | |
parent | [cient] improved lecture creation page and sorted versions list for combo in ... (diff) | |
download | tutor-module-970b756032307d867a0e7929feddb4f38f20b2dc.tar.gz tutor-module-970b756032307d867a0e7929feddb4f38f20b2dc.tar.xz tutor-module-970b756032307d867a0e7929feddb4f38f20b2dc.zip |
[client] Seperated filechooser from ImageUploadPage and also added it as directory chooser to download buttons.
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/FileChooser.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/FileChooser.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/FileChooser.java new file mode 100644 index 00000000..b83f9c48 --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/FileChooser.java @@ -0,0 +1,53 @@ +package org.openslx.dozmod.gui.helper; + +import java.awt.Component; + +import javax.swing.JComponent; +import javax.swing.JFileChooser; +import javax.swing.LookAndFeel; +import javax.swing.UIManager; + +import org.openslx.dozmod.Config; + +public class FileChooser extends JFileChooser { + /** + * @param isFileChooser wether filechooser is for selecting image to upload or selecting directory for download + */ + public FileChooser(boolean isFileChooser){ + super(isFileChooser ? Config.getUploadPath() : Config.getUploadPath()); + + // Ugly hack to get a prettier file chooser with GTK - should be moved to helper/util class + LookAndFeel old = UIManager.getLookAndFeel(); + if (!old.getName().toLowerCase().contains("gtk")) { + old = null; + } else { + try { + UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); + } catch (Exception e) { + e.printStackTrace(); + } + } + if (old != null) { + updateUI(); + try { + UIManager.setLookAndFeel(old); + } catch (Exception e) { + e.printStackTrace(); + } + refreshUI(this, false); + } + setFileSelectionMode(isFileChooser ? JFileChooser.FILES_ONLY : JFileChooser.DIRECTORIES_ONLY); + } + + private static void refreshUI(JComponent c, boolean includeParent) { + if (includeParent) + c.updateUI(); + + for (int i = 0; i < c.getComponentCount(); i++) { + Component child = c.getComponent(i); + if (child instanceof JComponent) { + refreshUI((JComponent) child, true); + } + } + } +} |