X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fgui%2FProjectPanel.java;h=187e0571ca6be16b27ce94b01fdae5232265bb92;hb=954a1a33392ef83e007b1045e2aaeac173361289;hp=c3b9a7803671482d35c75feba341b2c51cdd4c98;hpb=f90ad0c003cda73146628ac6d4e9d1cfa8164d85;p=jSite2.git 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));