X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fgui%2FFileManager.java;h=d84b6d2589cb931c680cc0b164d042815edd7b76;hb=751f589bf2b601b1a34bf0f075a6c6bb2e1e1f66;hp=7ce0d41f592f74dc122c3888ba90b2b3c30a6800;hpb=b88f00509e6442b5f933b1d11d0585f75754e384;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/gui/FileManager.java b/src/net/pterodactylus/jsite/gui/FileManager.java index 7ce0d41..d84b6d2 100644 --- a/src/net/pterodactylus/jsite/gui/FileManager.java +++ b/src/net/pterodactylus/jsite/gui/FileManager.java @@ -22,6 +22,9 @@ package net.pterodactylus.jsite.gui; import java.awt.BorderLayout; import java.awt.Component; import java.awt.FlowLayout; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; import java.awt.event.ActionEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -33,22 +36,28 @@ import java.util.logging.Logger; import javax.swing.BorderFactory; import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.event.TreeModelListener; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; import net.pterodactylus.jsite.i18n.I18n; import net.pterodactylus.jsite.i18n.I18nable; import net.pterodactylus.jsite.i18n.gui.I18nAction; +import net.pterodactylus.jsite.i18n.gui.I18nLabel; import net.pterodactylus.jsite.project.Entry; import net.pterodactylus.jsite.project.Project; import net.pterodactylus.util.data.Node; import net.pterodactylus.util.data.Tree; +import net.pterodactylus.util.io.MimeTypes; import net.pterodactylus.util.logging.Logging; import net.pterodactylus.util.swing.SwingUtils; @@ -57,7 +66,7 @@ import net.pterodactylus.util.swing.SwingUtils; * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> */ -public class FileManager extends JDialog implements I18nable { +public class FileManager extends JDialog implements I18nable, TreeSelectionListener { /** Logger. */ private static final Logger logger = Logging.getLogger(FileManager.class.getName()); @@ -71,9 +80,24 @@ public class FileManager extends JDialog implements I18nable { /** The “close” action. */ private I18nAction closeAction; + /** The “project files” label. */ + private I18nLabel projectFilesLabel; + /** The tree that shows the files. */ private JTree fileTree; + /** The “insert” action. */ + private I18nAction insertAction; + + /** The “insert” checkbox. */ + private JCheckBox insertCheckBox; + + /** The “mime type” label. */ + private I18nLabel mimeTypeLabel; + + /** The “mime type” combo box. */ + private JComboBox mimeTypeComboBox; + /** * Creates a new file manager. * @@ -89,7 +113,8 @@ public class FileManager extends JDialog implements I18nable { fileTreeModel = new FileTreeModel(); initActions(); initComponents(); - SwingUtils.repackCentered(this); + pack(); + SwingUtils.center(this); } // @@ -109,6 +134,14 @@ public class FileManager extends JDialog implements I18nable { setVisible(false); } }; + insertAction = new I18nAction("fileManager.checkbox.insertFile") { + /** + * {@inheritDoc} + */ + public void actionPerformed(ActionEvent actionEvent) { + /* TODO - implements. */ + } + }; } /** @@ -131,11 +164,34 @@ public class FileManager extends JDialog implements I18nable { */ private Component createFileManagerPanel() { JPanel fileManagerPanel = new JPanel(new BorderLayout(12, 12)); - fileManagerPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEtchedBorder(), BorderFactory.createEmptyBorder(12, 12, 12, 12))); + JPanel fileTreePanel = new JPanel(new BorderLayout(12, 12)); + fileManagerPanel.add(fileTreePanel, BorderLayout.LINE_START); + fileTree = new JTree(fileTreeModel); fileTree.setShowsRootHandles(false); - fileManagerPanel.add(new JScrollPane(fileTree), BorderLayout.CENTER); + fileTreePanel.add(new JScrollPane(fileTree), BorderLayout.CENTER); + + projectFilesLabel = new I18nLabel("fileManager.label.projectFiles", fileTree); + JPanel projectFilesLabelPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0)); + fileTreePanel.add(projectFilesLabelPanel, BorderLayout.NORTH); + projectFilesLabelPanel.add(projectFilesLabel); + + JPanel propertiesPanel = new JPanel(new GridBagLayout()); + fileManagerPanel.add(propertiesPanel, BorderLayout.CENTER); + propertiesPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEtchedBorder(), BorderFactory.createEmptyBorder(12, 12, 12, 12))); + + insertCheckBox = new JCheckBox(insertAction); + propertiesPanel.add(insertCheckBox, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); + + List allMimeTypes = MimeTypes.getAllMimeTypes(); + allMimeTypes.add(0, "auto-detect"); + mimeTypeComboBox = new JComboBox(allMimeTypes.toArray(new String[0])); + mimeTypeLabel = new I18nLabel("fileManager.label.mimeType", mimeTypeComboBox); + propertiesPanel.add(mimeTypeLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(6, 0, 0, 0), 0, 0)); + propertiesPanel.add(mimeTypeComboBox, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(6, 6, 0, 0), 0, 0)); + + propertiesPanel.add(new JPanel(), new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); return fileManagerPanel; } @@ -167,6 +223,17 @@ public class FileManager extends JDialog implements I18nable { setTitle(I18n.get("fileManager.title", project.getName())); } + // + // INTERFACE TreeSelectionListener + // + + /** + * {@inheritDoc} + */ + public void valueChanged(TreeSelectionEvent treeSelectionEvent) { + /* TODO - implement */ + } + /** * Model for the tree of files. *