Changeset 1178
- Timestamp:
- 09/28/18 10:36:27 (6 years ago)
- Location:
- trunk/src/org/expeditee/items/widgets
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/expeditee/items/widgets/SampleWidget1.java
r919 r1178 19 19 package org.expeditee.items.widgets; 20 20 21 import java.awt.Component; 22 import java.awt.event.ActionEvent; 23 import java.awt.event.ActionListener; 24 import java.awt.event.FocusEvent; 25 import java.awt.event.FocusListener; 26 import java.awt.event.ItemEvent; 27 import java.awt.event.ItemListener; 28 29 import javax.swing.InputVerifier; 21 30 import javax.swing.JComboBox; 31 import javax.swing.JComponent; 22 32 23 33 import org.expeditee.items.Text; … … 25 35 public class SampleWidget1 extends DataFrameWidget { 26 36 27 static String testItems[]= new String[] { "dog", "fish", "cat", "pig" };28 29 private JComboBox _combo;37 private static final String[] STRINGS = new String[] { "dog", "fish", "cat", "pig" }; 38 //private static final String[] STRINGS = new String[] { "1", "2", "3", "4", "1", "2", "3", "4", "1", "2", "3", "4", "1", "2", "3", "4" }; 39 private JComboBox<String> cmboOptions; 30 40 31 41 public SampleWidget1(Text source, String[] args) { 32 super(source, new JComboBox(testItems), 200, 200, 50, 50); 33 _combo = (JComboBox) super._swingComponent; 42 super(source, new JComboBox<String>(STRINGS), 200, 200, 50, 50); 43 cmboOptions = (JComboBox<String>) _swingComponent; 44 final DisplaySelection listener = new DisplaySelection(); 45 cmboOptions.addActionListener(listener); 46 cmboOptions.addItemListener(listener); 47 cmboOptions.addFocusListener(listener); 48 cmboOptions.setInputVerifier(listener); 49 for (Component c : cmboOptions.getComponents()) { 50 c.setFocusable(true); 51 } 52 } 53 54 private void printParents(final java.awt.Component component) { 55 if(component.getParent() != null) { 56 printParents(component.getParent()); 57 System.err.println("Component: " + component); 58 } else { 59 System.err.println("Component: " + component); 60 } 61 } 62 63 private final class DisplaySelection extends InputVerifier implements ActionListener, ItemListener, FocusListener { 64 @Override 65 public void actionPerformed(final ActionEvent e) { 66 System.err.println("Selected Item: " + cmboOptions.getSelectedItem()); 67 } 68 69 @Override 70 public void itemStateChanged(final ItemEvent e) { 71 if(e.getStateChange() == ItemEvent.SELECTED) { 72 System.err.println("Combobox Selected"); 73 System.err.println("SampleWidget1::main component children count: " + cmboOptions.getComponents().length); 74 } else if (e.getStateChange() == ItemEvent.DESELECTED) { 75 System.err.println("Combobox Lost Selection"); 76 System.err.println("SampleWidget1::main component children count: " + cmboOptions.getComponents().length); 77 } else { 78 System.err.println("Unexpected Combobox e.getStateChange(): " + e.getStateChange()); 79 } 80 } 81 82 @Override 83 public void focusGained(FocusEvent e) { 84 System.err.println("Combobox focus gained"); 85 } 86 87 @Override 88 public void focusLost(FocusEvent e) { 89 System.err.println("Combobox focus lost"); 90 } 91 92 @Override 93 public boolean verify(JComponent input) { 94 return true; 95 //return !cmboOptions.isPopupVisible(); 96 } 34 97 } 35 98 … … 37 100 protected String[] getArgs() { 38 101 String[] stateArgs = new String[1]; 39 stateArgs[0] = Integer.toString( _combo.getSelectedIndex());102 stateArgs[0] = Integer.toString(cmboOptions.getSelectedIndex()); 40 103 return stateArgs; 41 104 } 42 105 43 106 /** TODO: REVISE 44 107 @Override -
trunk/src/org/expeditee/items/widgets/SampleWidget2.java
r1102 r1178 21 21 import java.awt.FlowLayout; 22 22 import java.awt.Font; 23 import java.awt.event.ActionEvent; 24 import java.awt.event.ActionListener; 25 import java.awt.event.ItemEvent; 26 import java.awt.event.ItemListener; 27 import java.util.Random; 23 28 24 29 import javax.swing.JCheckBox; … … 32 37 import org.expeditee.core.Colour; 33 38 import org.expeditee.gio.swing.SwingConversions; 39 import org.expeditee.gio.swing.SwingFontManager; 34 40 import org.expeditee.items.Text; 35 41 36 42 public class SampleWidget2 extends SwingWidget { 37 38 private JComboBox _combo; 39 private JTextArea _text; 40 43 44 private static final Font STANDARD_FONT = SwingFontManager.getInstance().getInternalFont(SwingFontManager.getInstance().getDefaultFont()); 45 private static final Font BIG_FONT = STANDARD_FONT.deriveFont(STANDARD_FONT.getSize() * 2f); 46 private final JComboBox<String> cmboPrepend; 47 private final JTextArea utxt = new JTextArea();; 48 41 49 public SampleWidget2(Text source, String[] args) { 42 50 super(source, new JSplitPane(JSplitPane.VERTICAL_SPLIT), 60, -1, 40, -1); 51 final JSplitPane sp = (JSplitPane)super._swingComponent; 52 53 //Build controls area. 54 final JPanel controls = new JPanel(new FlowLayout()); 55 controls.setBackground(SwingConversions.toSwingColor(Colour.FromRGB255(255,228,195))); 56 57 final JLabel lblTitle = new JLabel("This is an example Widget!"); 58 lblTitle.setFont(BIG_FONT); 59 60 final JToggleButton tbtnStyle = new JToggleButton("Toggle Style"); 61 tbtnStyle.setFont(BIG_FONT); 62 tbtnStyle.addItemListener(new ToggleStyle(utxt)); 63 64 final JCheckBox ckbBigFont = new JCheckBox("Big Font"); 65 ckbBigFont.setBackground(null); 66 ckbBigFont.setSelected(true); 67 ckbBigFont.setFont(BIG_FONT); 68 ckbBigFont.addItemListener(new ToggleBigFont(utxt)); 69 70 final Random r = new Random(); 71 final String[] options = new String[] { "Item: " + r.nextInt(100), "Item: " + r.nextInt(100), "Item: " + r.nextInt(100), "Item: " + r.nextInt(100), "Item: " + r.nextInt(100), 72 "Item: " + r.nextInt(100), "Item: " + r.nextInt(100), "Item: " + r.nextInt(100), "Item: " + r.nextInt(100), "Item: " + r.nextInt(100) }; 73 cmboPrepend = new JComboBox<String>(options); 74 cmboPrepend.setFont(BIG_FONT); 75 cmboPrepend.addActionListener(new PrependManager(cmboPrepend, utxt)); 76 77 controls.add(lblTitle); 78 controls.add(cmboPrepend); 79 controls.add(tbtnStyle); 80 controls.add(ckbBigFont); 81 sp.setTopComponent(controls); 82 83 //Build user text area. 84 utxt.setFont(BIG_FONT); 85 sp.setBottomComponent(utxt); 43 86 44 Font bigFont = null; 45 46 JSplitPane sp = (JSplitPane)super._swingComponent; 47 48 JPanel p = new JPanel(new FlowLayout()); 49 p.setBackground(SwingConversions.toSwingColor(Colour.FromRGB255(255,228,195))); 87 //Initialise state 88 init(args, cmboPrepend, utxt); 89 } 50 90 51 JLabel lbl = new JLabel("This is an example InteractiveWidget!"); 52 bigFont = lbl.getFont().deriveFont(24F); 53 lbl.setFont(bigFont); 54 55 JToggleButton button = new JToggleButton("Toggle Style"); 56 button.setFont(bigFont); 57 58 JCheckBox checkBox = new JCheckBox("Big Font"); 59 checkBox.setBackground(null); 60 checkBox.setSelected(true); 61 checkBox.setFont(bigFont); 62 63 64 //JButton button2 = new JButton("Example CheckBox"); 65 66 _text = new JTextArea(); 67 _text.setFont(bigFont); 68 69 _combo = new JComboBox(new String[] {"Peach", "Item 2", "Item 3", "Item 21", "Item 22", "Item 23", "Item 31", "Item 32", "Item 33", "Item 41", "Item 42", "Item 43"}); 70 _combo.setFont(bigFont); 71 72 p.add(lbl); 73 p.add(_combo); 74 p.add(button); 75 p.add(checkBox); 76 77 sp.setTopComponent(p); 78 sp.setBottomComponent(_text); 79 80 // Set state 91 private void init(String[] args, final JComboBox<String> cmboPrepend, final JTextArea utxt) { 81 92 if (args != null && args.length >= 1) { 82 93 … … 92 103 } 93 104 94 if (selectedItem < 0) selectedItem = 0; 95 else if (selectedItem >= _combo.getItemCount()) 96 selectedItem = _combo.getItemCount() - 1; 105 if (selectedItem < 0) { 106 selectedItem = 0; 107 } else if (selectedItem >= cmboPrepend.getItemCount()) { 108 selectedItem = cmboPrepend.getItemCount() - 1; 109 } 97 110 98 _combo.setSelectedIndex(selectedItem);111 cmboPrepend.setSelectedIndex(selectedItem); 99 112 100 113 if (args.length >= 2 && args[1] != null) { 101 _text.setText(args[1]);114 utxt.setText(args[1]); 102 115 } 103 116 … … 109 122 110 123 } 111 } 124 } 112 125 } 113 126 127 private class PrependManager implements ActionListener { 128 private JComboBox<String> toConsult; 129 private JTextArea toAlter; 130 public PrependManager(final JComboBox<String> toConsult, final JTextArea toAlter) { 131 this.toConsult = toConsult; 132 this.toAlter = toAlter; 133 } 134 135 @Override 136 public void actionPerformed(ActionEvent e) { 137 this.toAlter.setText(this.toConsult.getSelectedItem() + " " + this.toAlter.getText()); 138 } 139 } 140 141 private class ToggleStyle implements ItemListener { 142 private JTextArea toToggle; 143 public ToggleStyle(final JTextArea toToggle) { 144 this.toToggle = toToggle; 145 } 146 147 @Override 148 public void itemStateChanged(final ItemEvent e) { 149 if(e.getStateChange() == ItemEvent.SELECTED) { 150 toToggle.setFont(toToggle.getFont().deriveFont(Font.BOLD)); 151 } else if (e.getStateChange() == ItemEvent.DESELECTED) { 152 toToggle.setFont(toToggle.getFont().deriveFont(Font.PLAIN)); 153 } 154 } 155 } 156 157 private class ToggleBigFont implements ItemListener { 158 private JTextArea toToggle; 159 160 public ToggleBigFont(final JTextArea toToggle) { 161 this.toToggle = toToggle; 162 } 163 164 @Override 165 public void itemStateChanged(final ItemEvent e) { 166 if(e.getStateChange() == ItemEvent.SELECTED) { 167 toToggle.setFont(BIG_FONT.deriveFont(toToggle.getFont().getStyle())); 168 } else if(e.getStateChange() == ItemEvent.DESELECTED) { 169 toToggle.setFont(STANDARD_FONT.deriveFont(toToggle.getFont().getStyle())); 170 } 171 } 172 } 173 114 174 @Override 115 175 protected String[] getArgs() { 116 176 117 177 return new String[] { 118 Integer.toString( _combo.getSelectedIndex()),119 _text.getText(),178 Integer.toString(cmboPrepend.getSelectedIndex()), 179 utxt.getText(), 120 180 Integer.toString(((JSplitPane)super._swingComponent).getDividerLocation()) 121 181 }; -
trunk/src/org/expeditee/items/widgets/SampleWidget3.java
r1160 r1178 1 1 package org.expeditee.items.widgets; 2 3 import java.awt.event.MouseEvent; 4 import java.awt.event.MouseListener; 2 5 3 6 import javax.swing.JButton; … … 5 8 import javax.swing.JPanel; 6 9 10 import org.expeditee.gui.MessageBay; 7 11 import org.expeditee.items.Text; 8 12 9 13 public class SampleWidget3 extends DataFrameWidget { 10 14 11 private final static JPanel panel = new JPanel(); 12 private final static JLabel label = new JLabel("Hello World"); 13 private final static JButton button = new JButton("Hello World"); 15 private final JLabel label = new JLabel("Hello World"); 16 private final JButton button = new JButton("Hello World"); 14 17 15 18 public SampleWidget3(final Text source, final String[] args) { 16 super(source, panel, 200, 200, 50, 50); 19 super(source, new JPanel(), 200, 200, 50, 50); 20 final JPanel panel = (JPanel)_swingComponent; 17 21 panel.add(label); 18 22 panel.add(button); 23 button.addMouseListener(new MouseListener() { 24 @Override 25 public void mouseReleased(MouseEvent e) { 26 } 27 @Override 28 public void mousePressed(MouseEvent e) { 29 } 30 @Override 31 public void mouseExited(MouseEvent e) { 32 } 33 @Override 34 public void mouseEntered(MouseEvent e) { 35 } 36 37 @Override 38 public void mouseClicked(MouseEvent e) { 39 MessageBay.displayMessage("Mouse button clicked: " + e.getButton()); 40 } 41 }); 19 42 } 20 43
Note:
See TracChangeset
for help on using the changeset viewer.