use of javax.swing.JToggleButton in project com.revolsys.open by revolsys.
the class RecordLayerTablePanel method addGeometryFilterToggleButton.
protected JToggleButton addGeometryFilterToggleButton(final ToolBar toolBar, final int index, final String title, final String icon, final String mode, final EnableCheck enableCheck) {
final JToggleButton button = toolBar.addToggleButtonTitleIcon(FILTER_GEOMETRY, index, title, icon, enableCheck, () -> setGeometryFilterMode(mode));
this.buttonByMode.put(FILTER_GEOMETRY + "_" + mode, button);
return button;
}
use of javax.swing.JToggleButton in project com.revolsys.open by revolsys.
the class RecordLayerTablePanel method setGeometryFilterMode.
public void setGeometryFilterMode(final String geometryFilterMode) {
final String mode = this.tableModel.setGeometryFilterMode(geometryFilterMode);
final JToggleButton button = this.buttonByMode.get(FILTER_GEOMETRY + "_" + mode);
if (button != null) {
if (!button.isSelected()) {
button.doClick();
}
}
}
use of javax.swing.JToggleButton in project ffx by mjschnie.
the class ModelingPanel method loadCommand.
private void loadCommand() {
synchronized (this) {
// Force Field X Command
Element command;
// Command Options
NodeList options;
Element option;
// Option Values
NodeList values;
Element value;
// Options may be Conditional based on previous Option values (not
// always supplied)
NodeList conditionalList;
Element conditional;
// JobPanel GUI Components that change based on command
JPanel optionPanel;
// Clear the previous components
commandPanel.removeAll();
optionsTabbedPane.removeAll();
conditionals.clear();
String currentCommand = (String) currentCommandBox.getSelectedItem();
if (currentCommand == null) {
commandPanel.validate();
commandPanel.repaint();
return;
}
command = null;
for (int i = 0; i < commandList.getLength(); i++) {
command = (Element) commandList.item(i);
String name = command.getAttribute("name");
if (name.equalsIgnoreCase(currentCommand)) {
break;
}
}
int div = splitPane.getDividerLocation();
descriptTextArea.setText(currentCommand.toUpperCase() + ": " + command.getAttribute("description"));
splitPane.setBottomComponent(descriptScrollPane);
splitPane.setDividerLocation(div);
// The "action" tells Force Field X what to do when the
// command finishes
commandActions = command.getAttribute("action").trim();
// The "fileType" specifies what file types this command can execute
// on
String string = command.getAttribute("fileType").trim();
String[] types = string.split(" +");
commandFileTypes.clear();
for (String type : types) {
if (type.contains("XYZ")) {
commandFileTypes.add(FileType.XYZ);
}
if (type.contains("INT")) {
commandFileTypes.add(FileType.INT);
}
if (type.contains("ARC")) {
commandFileTypes.add(FileType.ARC);
}
if (type.contains("PDB")) {
commandFileTypes.add(FileType.PDB);
}
if (type.contains("ANY")) {
commandFileTypes.add(FileType.ANY);
}
}
// Determine what options are available for this command
options = command.getElementsByTagName("Option");
int length = options.getLength();
for (int i = 0; i < length; i++) {
// This Option will be enabled (isEnabled = true) unless a
// Conditional disables it
boolean isEnabled = true;
option = (Element) options.item(i);
conditionalList = option.getElementsByTagName("Conditional");
/*
* Currently, there can only be 0 or 1 Conditionals per Option
* There are three types of Conditionals implemented. 1.)
* Conditional on a previous Option, this option may be
* available 2.) Conditional on input for this option, a
* sub-option may be available 3.) Conditional on the presence
* of keywords, this option may be available
*/
if (conditionalList != null) {
conditional = (Element) conditionalList.item(0);
} else {
conditional = null;
}
// Get the command line flag
String flag = option.getAttribute("flag").trim();
// Get the description
String optionDescript = option.getAttribute("description");
JTextArea optionTextArea = new JTextArea(" " + optionDescript.trim());
optionTextArea.setEditable(false);
optionTextArea.setLineWrap(true);
optionTextArea.setWrapStyleWord(true);
optionTextArea.setBorder(etchedBorder);
// Get the default for this Option (if one exists)
String defaultOption = option.getAttribute("default");
// Option Panel
optionPanel = new JPanel(new BorderLayout());
optionPanel.add(optionTextArea, BorderLayout.NORTH);
String swing = option.getAttribute("gui");
JPanel optionValuesPanel = new JPanel(new FlowLayout());
optionValuesPanel.setBorder(etchedBorder);
ButtonGroup bg = null;
if (swing.equalsIgnoreCase("CHECKBOXES")) {
// CHECKBOXES allows selection of 1 or more values from a
// predefined set (Analyze, for example)
values = option.getElementsByTagName("Value");
for (int j = 0; j < values.getLength(); j++) {
value = (Element) values.item(j);
JCheckBox jcb = new JCheckBox(value.getAttribute("name"));
jcb.addMouseListener(this);
jcb.setName(flag);
if (defaultOption != null && jcb.getActionCommand().equalsIgnoreCase(defaultOption)) {
jcb.setSelected(true);
}
optionValuesPanel.add(jcb);
}
} else if (swing.equalsIgnoreCase("TEXTFIELD")) {
// TEXTFIELD takes an arbitrary String as input
JTextField jtf = new JTextField(20);
jtf.addMouseListener(this);
jtf.setName(flag);
if (defaultOption != null && defaultOption.equals("ATOMS")) {
FFXSystem sys = mainPanel.getHierarchy().getActive();
if (sys != null) {
jtf.setText("" + sys.getAtomList().size());
}
} else if (defaultOption != null) {
jtf.setText(defaultOption);
}
optionValuesPanel.add(jtf);
} else if (swing.equalsIgnoreCase("RADIOBUTTONS")) {
// RADIOBUTTONS allows one choice from a set of predifined
// values
bg = new ButtonGroup();
values = option.getElementsByTagName("Value");
for (int j = 0; j < values.getLength(); j++) {
value = (Element) values.item(j);
JRadioButton jrb = new JRadioButton(value.getAttribute("name"));
jrb.addMouseListener(this);
jrb.setName(flag);
bg.add(jrb);
if (defaultOption != null && jrb.getActionCommand().equalsIgnoreCase(defaultOption)) {
jrb.setSelected(true);
}
optionValuesPanel.add(jrb);
}
} else if (swing.equalsIgnoreCase("PROTEIN")) {
// Protein allows selection of amino acids for the protein
// builder
optionValuesPanel.setLayout(new BoxLayout(optionValuesPanel, BoxLayout.Y_AXIS));
optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5)));
optionValuesPanel.add(getAminoAcidPanel());
optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5)));
acidComboBox.removeAllItems();
JButton add = new JButton("Edit");
add.setActionCommand("PROTEIN");
add.addActionListener(this);
add.setAlignmentX(Button.CENTER_ALIGNMENT);
JPanel comboPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
comboPanel.add(acidTextField);
comboPanel.add(add);
optionValuesPanel.add(comboPanel);
optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5)));
JButton remove = new JButton("Remove");
add.setMinimumSize(remove.getPreferredSize());
add.setPreferredSize(remove.getPreferredSize());
remove.setActionCommand("PROTEIN");
remove.addActionListener(this);
remove.setAlignmentX(Button.CENTER_ALIGNMENT);
comboPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
comboPanel.add(acidComboBox);
comboPanel.add(remove);
optionValuesPanel.add(comboPanel);
optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5)));
optionValuesPanel.add(acidScrollPane);
optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5)));
JButton reset = new JButton("Reset");
reset.setActionCommand("PROTEIN");
reset.addActionListener(this);
reset.setAlignmentX(Button.CENTER_ALIGNMENT);
optionValuesPanel.add(reset);
optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5)));
acidTextArea.setText("");
acidTextField.setText("");
} else if (swing.equalsIgnoreCase("NUCLEIC")) {
// Nucleic allows selection of nucleic acids for the nucleic
// acid builder
optionValuesPanel.setLayout(new BoxLayout(optionValuesPanel, BoxLayout.Y_AXIS));
optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5)));
optionValuesPanel.add(getNucleicAcidPanel());
optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5)));
acidComboBox.removeAllItems();
JButton add = new JButton("Edit");
add.setActionCommand("NUCLEIC");
add.addActionListener(this);
add.setAlignmentX(Button.CENTER_ALIGNMENT);
JPanel comboPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
comboPanel.add(acidTextField);
comboPanel.add(add);
optionValuesPanel.add(comboPanel);
optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5)));
JButton remove = new JButton("Remove");
add.setMinimumSize(remove.getPreferredSize());
add.setPreferredSize(remove.getPreferredSize());
remove.setActionCommand("NUCLEIC");
remove.addActionListener(this);
remove.setAlignmentX(Button.CENTER_ALIGNMENT);
comboPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
comboPanel.add(acidComboBox);
comboPanel.add(remove);
optionValuesPanel.add(comboPanel);
optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5)));
optionValuesPanel.add(acidScrollPane);
optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5)));
JButton button = new JButton("Reset");
button.setActionCommand("NUCLEIC");
button.addActionListener(this);
button.setAlignmentX(Button.CENTER_ALIGNMENT);
optionValuesPanel.add(button);
optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5)));
acidTextArea.setText("");
acidTextField.setText("");
} else if (swing.equalsIgnoreCase("SYSTEMS")) {
// SYSTEMS allows selection of an open system
JComboBox<FFXSystem> jcb = new JComboBox<>(mainPanel.getHierarchy().getNonActiveSystems());
jcb.setSize(jcb.getMaximumSize());
jcb.addActionListener(this);
optionValuesPanel.add(jcb);
}
// Set up a Conditional for this Option
if (conditional != null) {
isEnabled = false;
String conditionalName = conditional.getAttribute("name");
String conditionalValues = conditional.getAttribute("value");
String cDescription = conditional.getAttribute("description");
String cpostProcess = conditional.getAttribute("postProcess");
if (conditionalName.toUpperCase().startsWith("KEYWORD")) {
optionPanel.setName(conditionalName);
String[] keywords = conditionalValues.split(" +");
if (activeSystem != null) {
Hashtable<String, Keyword> systemKeywords = activeSystem.getKeywords();
for (String key : keywords) {
if (systemKeywords.containsKey(key.toUpperCase())) {
isEnabled = true;
}
}
}
} else if (conditionalName.toUpperCase().startsWith("VALUE")) {
isEnabled = true;
// the conditional options can be disabled/enabled.
for (int j = 0; j < optionValuesPanel.getComponentCount(); j++) {
JToggleButton jtb = (JToggleButton) optionValuesPanel.getComponent(j);
jtb.addActionListener(this);
jtb.setActionCommand("Conditional");
}
JPanel condpanel = new JPanel();
condpanel.setBorder(etchedBorder);
JLabel condlabel = new JLabel(cDescription);
condlabel.setEnabled(false);
condlabel.setName(conditionalValues);
JTextField condtext = new JTextField(10);
condlabel.setLabelFor(condtext);
if (cpostProcess != null) {
condtext.setName(cpostProcess);
}
condtext.setEnabled(false);
condpanel.add(condlabel);
condpanel.add(condtext);
conditionals.add(condlabel);
optionPanel.add(condpanel, BorderLayout.SOUTH);
} else if (conditionalName.toUpperCase().startsWith("REFLECTION")) {
String[] condModifiers;
if (conditionalValues.equalsIgnoreCase("AltLoc")) {
condModifiers = activeSystem.getAltLocations();
if (condModifiers != null && condModifiers.length > 1) {
isEnabled = true;
bg = new ButtonGroup();
for (int j = 0; j < condModifiers.length; j++) {
JRadioButton jrbmi = new JRadioButton(condModifiers[j]);
jrbmi.addMouseListener(this);
bg.add(jrbmi);
optionValuesPanel.add(jrbmi);
if (j == 0) {
jrbmi.setSelected(true);
}
}
}
} else if (conditionalValues.equalsIgnoreCase("Chains")) {
condModifiers = activeSystem.getChainNames();
if (condModifiers != null && condModifiers.length > 0) {
isEnabled = true;
for (int j = 0; j < condModifiers.length; j++) {
JRadioButton jrbmi = new JRadioButton(condModifiers[j]);
jrbmi.addMouseListener(this);
bg.add(jrbmi);
optionValuesPanel.add(jrbmi, j);
}
}
}
}
}
optionPanel.add(optionValuesPanel, BorderLayout.CENTER);
optionPanel.setPreferredSize(optionPanel.getPreferredSize());
optionsTabbedPane.addTab(option.getAttribute("name"), optionPanel);
optionsTabbedPane.setEnabledAt(optionsTabbedPane.getTabCount() - 1, isEnabled);
}
}
optionsTabbedPane.setPreferredSize(optionsTabbedPane.getPreferredSize());
commandPanel.setLayout(borderLayout);
commandPanel.add(optionsTabbedPane, BorderLayout.CENTER);
commandPanel.validate();
commandPanel.repaint();
loadLogSettings();
statusLabel.setText(" " + createCommandInput());
}
use of javax.swing.JToggleButton in project runelite by runelite.
the class HiscorePanel method updateButtons.
private void updateButtons() {
for (JToggleButton button : endpointButtons) {
Color color;
if (button.isSelected()) {
color = Color.CYAN;
} else {
color = Color.WHITE;
}
button.setBackground(color);
}
}
use of javax.swing.JToggleButton in project CodenameOne by codenameone.
the class PropertySheetPanel method buildUI.
private void buildUI() {
LookAndFeelTweaks.setBorderLayout(this);
LookAndFeelTweaks.setBorder(this);
actionPanel = new JPanel(new FlowLayout(FlowLayout.LEADING, 2, 0));
actionPanel.setBorder(BorderFactory.createEmptyBorder(2, 0, 2, 0));
actionPanel.setOpaque(false);
add("North", actionPanel);
sortButton = new JToggleButton(new ToggleSortingAction());
sortButton.setUI(new BlueishButtonUI());
sortButton.setText(null);
sortButton.setOpaque(false);
actionPanel.add(sortButton);
asCategoryButton = new JToggleButton(new ToggleModeAction());
asCategoryButton.setUI(new BlueishButtonUI());
asCategoryButton.setText(null);
asCategoryButton.setOpaque(false);
actionPanel.add(asCategoryButton);
descriptionButton = new JToggleButton(new ToggleDescriptionAction());
descriptionButton.setUI(new BlueishButtonUI());
descriptionButton.setText(null);
descriptionButton.setOpaque(false);
actionPanel.add(descriptionButton);
split = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
split.setBorder(null);
split.setResizeWeight(1.0);
split.setContinuousLayout(true);
add("Center", split);
tableScroll = new JScrollPane();
tableScroll.setBorder(BorderFactory.createEmptyBorder());
split.setTopComponent(tableScroll);
descriptionPanel = new JEditorPane("text/html", "<html>");
descriptionPanel.setBorder(BorderFactory.createEmptyBorder());
descriptionPanel.setEditable(false);
descriptionPanel.setBackground(UIManager.getColor("Panel.background"));
LookAndFeelTweaks.htmlize(descriptionPanel);
selectionListener = new SelectionListener();
descriptionScrollPane = new JScrollPane(descriptionPanel);
descriptionScrollPane.setBorder(LookAndFeelTweaks.addMargin(BorderFactory.createLineBorder(UIManager.getColor("controlDkShadow"))));
descriptionScrollPane.getViewport().setBackground(descriptionPanel.getBackground());
descriptionScrollPane.setMinimumSize(new Dimension(50, 50));
split.setBottomComponent(descriptionScrollPane);
// by default description is not visible, toolbar is visible.
setDescriptionVisible(false);
setToolBarVisible(true);
}
Aggregations