|
|
@@ -1,4 +1,4 @@
|
|
|
-package org.leumasjaffe.recipe.view;
|
|
|
+package org.leumasjaffe.recipe.view.summary;
|
|
|
|
|
|
import javax.imageio.ImageIO;
|
|
|
import javax.swing.Icon;
|
|
|
@@ -7,7 +7,6 @@ import javax.swing.JButton;
|
|
|
import javax.swing.JLabel;
|
|
|
import javax.swing.JPanel;
|
|
|
|
|
|
-import java.awt.Component;
|
|
|
import java.awt.Dimension;
|
|
|
import java.awt.FlowLayout;
|
|
|
import java.awt.event.KeyEvent;
|
|
|
@@ -16,6 +15,7 @@ import java.awt.image.BufferedImage;
|
|
|
import java.io.IOException;
|
|
|
import java.util.HashSet;
|
|
|
import java.util.Set;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
import javax.swing.JTextField;
|
|
|
|
|
|
@@ -40,12 +40,16 @@ public class TagInputPanel extends JPanel {
|
|
|
}
|
|
|
|
|
|
private final class TagField extends JPanel {
|
|
|
+ JButton btnRemove;
|
|
|
+
|
|
|
private TagField(final String value) {
|
|
|
setLayout(new FlowLayout(FlowLayout.CENTER));
|
|
|
add(new JLabel(value));
|
|
|
- JButton btnRemove = new JButton(X_MARK);
|
|
|
+
|
|
|
+ btnRemove = new JButton(X_MARK);
|
|
|
btnRemove.setPreferredSize(new Dimension(10, 10));
|
|
|
add(btnRemove);
|
|
|
+
|
|
|
btnRemove.addActionListener(e -> {
|
|
|
setVisible(false);
|
|
|
TagInputPanel.this.model.remove(value);
|
|
|
@@ -53,17 +57,23 @@ public class TagInputPanel extends JPanel {
|
|
|
TagInputPanel.this.revalidate();
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void setEnabled(boolean enabled) {
|
|
|
+ btnRemove.setEnabled(enabled);
|
|
|
+ btnRemove.setVisible(enabled);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@NonFinal Set<String> model = new HashSet<>();
|
|
|
+ JLabel lblTags = new JLabel("Tags:");
|
|
|
JTextField textField;
|
|
|
|
|
|
public TagInputPanel() {
|
|
|
setLayout(new FlowLayout(FlowLayout.LEADING, 0, 0));
|
|
|
-
|
|
|
+
|
|
|
textField = new JTextField();
|
|
|
new GhostTextController(textField, "Tags...");
|
|
|
- add(textField);
|
|
|
textField.setColumns(10);
|
|
|
|
|
|
textField.addKeyListener(new KeyListener() {
|
|
|
@@ -78,6 +88,8 @@ public class TagInputPanel extends JPanel {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
+ clear();
|
|
|
}
|
|
|
|
|
|
public void setModel(Set<String> model) {
|
|
|
@@ -89,11 +101,10 @@ public class TagInputPanel extends JPanel {
|
|
|
}
|
|
|
|
|
|
private void clear() {
|
|
|
- for (Component comp : getComponents()) {
|
|
|
- comp.setVisible(false);
|
|
|
- }
|
|
|
- removeAll();
|
|
|
+ Stream.of(getComponents()).forEach(c -> c.setVisible(false));
|
|
|
textField.setVisible(true);
|
|
|
+
|
|
|
+ add(lblTags);
|
|
|
add(textField);
|
|
|
}
|
|
|
|
|
|
@@ -105,4 +116,11 @@ public class TagInputPanel extends JPanel {
|
|
|
revalidate();
|
|
|
textField.requestFocus();
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void setEnabled(boolean enabled) {
|
|
|
+ Stream.of(getComponents()).forEach(c -> c.setEnabled(enabled));
|
|
|
+ lblTags.setVisible(!enabled);
|
|
|
+ textField.setVisible(enabled);
|
|
|
+ }
|
|
|
}
|