X-Git-Url: https://git.pterodactylus.net/?p=jSite2.git;a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fgui%2FProjectPanel.java;h=187e0571ca6be16b27ce94b01fdae5232265bb92;hp=c3b9a7803671482d35c75feba341b2c51cdd4c98;hb=f0bc03c6988cc9abcb2fcba8f149b1d41031ec5e;hpb=9ed381297cca35dfdab072643bdb38444cfd9779 diff --git a/src/net/pterodactylus/jsite/gui/ProjectPanel.java b/src/net/pterodactylus/jsite/gui/ProjectPanel.java index c3b9a78..187e057 100644 --- a/src/net/pterodactylus/jsite/gui/ProjectPanel.java +++ b/src/net/pterodactylus/jsite/gui/ProjectPanel.java @@ -31,6 +31,7 @@ import java.util.logging.Logger; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.BorderFactory; +import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFileChooser; @@ -40,6 +41,7 @@ import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.Document; +import net.pterodactylus.jsite.core.Node; import net.pterodactylus.jsite.core.Project; import net.pterodactylus.jsite.i18n.I18n; import net.pterodactylus.jsite.i18n.I18nable; @@ -129,6 +131,31 @@ public class ProjectPanel extends JPanel implements DocumentListener, I18nable { } // + // ACTIONS + // + + /** + * Adds the given node to the node combo boxes in all {@link ProjectPanel}s. + * + * @param node + * The node to add + */ + public void addNode(Node node) { + ((DefaultComboBoxModel) nodeComboBox.getModel()).addElement(node); + } + + /** + * Removes the given node from the node combo boxes in all + * {@link ProjectPanel}s. + * + * @param node + * The node to remove + */ + public void removeNode(Node node) { + ((DefaultComboBoxModel) nodeComboBox.getModel()).removeElement(node); + } + + // // PRIVATE METHODS // @@ -161,8 +188,10 @@ public class ProjectPanel extends JPanel implements DocumentListener, I18nable { /** * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) */ + @SuppressWarnings("synthetic-access") public void actionPerformed(ActionEvent actionEvent) { - /* TODO */ + Node node = (Node) nodeComboBox.getSelectedItem(); + project.setNode(node); } }; } @@ -210,7 +239,12 @@ public class ProjectPanel extends JPanel implements DocumentListener, I18nable { propertiesPanel.add(changeBasePathButton, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 12, 0, 0), 0, 0)); propertiesPanel.add(editFilesButton, new GridBagConstraints(3, 2, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 12, 0, 0), 0, 0)); - nodeComboBox = new JComboBox(); + nodeComboBox = new JComboBox(new DefaultComboBoxModel()); + ((DefaultComboBoxModel) nodeComboBox.getModel()).addElement(null); + for (Node node : swingInterface.getNodes()) { + ((DefaultComboBoxModel) nodeComboBox.getModel()).addElement(node); + } + nodeComboBox.setSelectedItem(project.getNode()); nodeComboBox.addActionListener(nodeAction); nodeLabel = new I18nLabel("projectPanel.label.node", nodeComboBox); propertiesPanel.add(nodeLabel, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 0, 0, 0), 0, 0));