List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder DefaultFormBuilder
public DefaultFormBuilder(FormLayout layout)
From source file:edu.ku.brc.af.ui.forms.ResultSetController.java
License:Open Source License
/** * Creates the UI for the controller.//from www . j ava2 s. c o m * @param addNewBtn indicates it should include the "Add" (New Object) button * @param addDelBtn indicates it should include Delete button * @param objTitle the title of a single object in the controller (used for building tooltips) */ protected void buildRecordNavBar(final boolean addNewBtn, final boolean addDelBtn, final boolean addSearchBtn, final String objTitle) { String colDef = "p,2dlu,p,2dlu,max(50dlu;p):grow,2dlu,p,2dlu,p" + (addNewBtn ? ",12px,p" : "") + (addDelBtn ? ",2dlu,p" : "") + (addSearchBtn ? ",2dlu,p" : ""); Insets insets = new Insets(1, 1, 1, 1); DefaultFormBuilder rowBuilder = new DefaultFormBuilder(new FormLayout(colDef, "p")); firstBtn = UIHelper.createIconBtn("FirstRec", null, null); prevBtn = UIHelper.createIconBtn("PrevRec", null, null); btnsHash.put(CommandType.Previous, prevBtn); btnsHash.put(CommandType.First, firstBtn); recDisp = createLabel(" "); recDisp.setHorizontalAlignment(SwingConstants.CENTER); recDisp.setOpaque(true); recDisp.setBackground(Color.WHITE); recDisp.setBorder(enabledBorder); recDisp.setFont(recDisp.getFont().deriveFont(recDisp.getFont().getSize2D() - 2)); MouseListener mouseListener = new MouseAdapter() { private boolean showIfPopupTrigger(MouseEvent mouseEvent) { if (mouseEvent.isPopupTrigger()) { JPopupMenu popupMenu = createPopupMenu(); if (popupMenu != null && popupMenu.getComponentCount() > 0) { popupMenu.show(mouseEvent.getComponent(), mouseEvent.getX(), mouseEvent.getY()); return true; } } return false; } @Override public void mousePressed(MouseEvent mouseEvent) { showIfPopupTrigger(mouseEvent); } @Override public void mouseReleased(MouseEvent mouseEvent) { showIfPopupTrigger(mouseEvent); } /* (non-Javadoc) * @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent) */ @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { if (numRecords == 1) { UIRegistry.writeTimedSimpleGlassPaneMsg(getResourceString("OnlyOneRrecordInCon")); } else { showGotoRecDlg(); } } } }; recDisp.addMouseListener(mouseListener); nextBtn = UIHelper.createIconBtn("NextRec", null, null); lastBtn = UIHelper.createIconBtn("LastRec", null, null); btnsHash.put(CommandType.Next, nextBtn); btnsHash.put(CommandType.Last, lastBtn); firstBtn.setToolTipText(createTooltip("GotoFirstRecordTT", objTitle)); prevBtn.setToolTipText(createTooltip("GotoPreviousRecordTT", objTitle)); nextBtn.setToolTipText(createTooltip("GotoNextRecordTT", objTitle)); lastBtn.setToolTipText(createTooltip("GotoLastRecordTT", objTitle)); firstBtn.setOpaque(false); prevBtn.setOpaque(false); nextBtn.setOpaque(false); lastBtn.setOpaque(false); CellConstraints cc = new CellConstraints(); rowBuilder.add(firstBtn, cc.xy(1, 1)); rowBuilder.add(prevBtn, cc.xy(3, 1)); rowBuilder.add(recDisp, cc.xy(5, 1)); rowBuilder.add(nextBtn, cc.xy(7, 1)); rowBuilder.add(lastBtn, cc.xy(9, 1)); int col = 11; if (addNewBtn) { if (false) { newRecBtn = new JButton("+") { public void setEnabled(boolean enable) { //log.debug("newRecBtn - RS: "+ formValidator.getName() + " " + newRecBtn.hashCode() + " "+enable+" isNewObj: "+isNewObj); if (formValidator != null && formValidator.getName() != null && formValidator.getName().equals("Collection Object")) { int x = 0; x++; if (enable) { int y = 0; y++; } } if (enable) { int x = 0; x++; } super.setEnabled(enable); } }; setControlSize(newRecBtn); ActionListener l = new ActionListener() { public void actionPerformed(ActionEvent ae) { for (ResultSetControllerListener rscl : listeners) { rscl.newRecordAdded(); } } }; newRecBtn.addActionListener(l); } else { newRecBtn = UIHelper.createIconBtn("NewRecord", null, new ActionListener() { public void actionPerformed(ActionEvent ae) { for (ResultSetControllerListener rscl : listeners) { rscl.newRecordAdded(); } } }); } newRecBtn.setToolTipText(createTooltip("NewRecordTT", objTitle)); newRecBtn.setEnabled(true); newRecBtn.setMargin(insets); btnsHash.put(CommandType.NewItem, newRecBtn); if (doLayoutBtns) { rowBuilder.add(newRecBtn, cc.xy(col, 1)); col += 2; } } if (addDelBtn) { if (false) { delRecBtn = new JButton("-") { public void setEnabled(boolean enable) { //log.debug("delRecBtn - RS: "+formValidator.getName() + " " + hashCode() + " "+enable); if (formValidator != null && formValidator.getName() != null && formValidator.getName().equals("Permit")) { int x = 0; x++; } if (!enable) { int x = 0; x++; } super.setEnabled(enable); } }; } else { delRecBtn = UIHelper.createIconBtn("DeleteRecord", null, null); } delRecBtn.setToolTipText(createTooltip("DeleteRecordTT", objTitle)); delRecBtn.setMargin(insets); btnsHash.put(CommandType.DelItem, delRecBtn); if (doLayoutBtns) { rowBuilder.add(delRecBtn, cc.xy(col, 1)); col += 2; } } if (addSearchBtn) { searchRecBtn = UIHelper.createIconBtn("Search", IconManager.IconSize.Std16, null, null); searchRecBtn.setToolTipText(createTooltip("SearchForRecordTT", objTitle)); searchRecBtn.setMargin(insets); if (doLayoutBtns) { rowBuilder.add(searchRecBtn, cc.xy(col, 1)); col += 2; } } firstBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { firstRecord(); } }); prevBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { prevRecord(); } }); nextBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { nextRecord(); } }); lastBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { lastRecord(); } }); // Make sure it gets centered rowBuilder.getPanel().setOpaque(false); DefaultFormBuilder outerCenteredPanel = new DefaultFormBuilder(new FormLayout("c:p:g", "p")); outerCenteredPanel.add(rowBuilder.getPanel(), cc.xy(1, 1)); panel = outerCenteredPanel.getPanel(); panel.setOpaque(false); }
From source file:edu.ku.brc.af.ui.forms.ResultSetController.java
License:Open Source License
/** * //from w ww . j av a 2 s. c o m */ protected void showGotoRecDlg() { JTextField tf = UIHelper.createTextField(5); CellConstraints cc = new CellConstraints(); DefaultFormBuilder p = new DefaultFormBuilder(new FormLayout("p,2px,f:p:g", "p")); p.add(UIHelper.createI18NLabel("RS_NUM_LBL"), cc.xy(1, 1)); p.add(tf, cc.xy(3, 1)); p.setDefaultDialogBorder(); CustomDialog dlg = new CustomDialog((Frame) null, "", true, CustomDialog.OKCANCEL, p.getPanel()); dlg.setCustomTitleBar(getResourceString("RS_JUMP_TITLE")); UIHelper.centerAndShow(dlg); if (!dlg.isCancelled()) { String recNumStr = tf.getText(); if (!recNumStr.isEmpty() && StringUtils.isNumeric(recNumStr)) { try { int recNum = Integer.parseInt(recNumStr); if (recNum > 0 && recNum <= lastInx) { setIndex(recNum - 1); } } catch (Exception ex) { } } } }
From source file:edu.udo.scaffoldhunter.gui.datacalculation.CalcDialog.java
License:Open Source License
private JPanel createPluginDescriptionPanel(CalcPlugin plugin) { FormLayout layout = new FormLayout("p", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); WordWrapLabel description = new WordWrapLabel(plugin.getDescription()); description.setMaximumWidth(600);/*from w w w . j a v a2 s. c om*/ builder.appendSeparator(_("DataCalc.PluginDescription")); builder.append(description); builder.appendUnrelatedComponentsGapRow(); return builder.getPanel(); }
From source file:edu.udo.scaffoldhunter.gui.dataimport.PropertyDefinitonCreationDialog.java
License:Open Source License
/** * Create a new dialog/* w w w .j a v a2 s. co m*/ * * @param owner * the owner of the new dialog * @param title * a proposed title for this property definition * @param probablyNumeric * the default behavior for the Numeric checkbox */ public PropertyDefinitonCreationDialog(Dialog owner, String title, boolean probablyNumeric) { super(owner, _("DataImport.PropertyDefinitionCreationDialog.Title"), true); type.setRenderer(new PropertyTypeRenderer()); if (probablyNumeric) { type.setSelectedItem(PropertyType.NumProperty); } FormLayout layout = new FormLayout("r:p, 3dlu, MAX(150dlu;p):g"); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder(); titleField.setText(title); SelectAllOnFocus.addTo(titleField); builder.append(_("PropertyDefinition.Title"), titleField); builder.append(_("PropertyDefinition.Type"), type); builder.append(_("PropertyDefinition.Description"), new JScrollPane(getDescriptionArea())); JButton okButton = getOkButton(); builder.append(ButtonBarFactory.buildOKCancelBar(okButton, getCancelButton()), 3); setLayout(new BorderLayout()); add(builder.getPanel(), BorderLayout.CENTER); getRootPane().setDefaultButton(okButton); setLocationRelativeTo(owner); pack(); }
From source file:edu.udo.scaffoldhunter.gui.dialogs.InitialViewDialog.java
License:Open Source License
private JPanel buildPropertyPanel() { FormLayout layout = new FormLayout("p, 3dlu, c:p, 3dlu, c:p"); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder();/*from w w w .j ava2 s .co m*/ for (String viewName : views.keySet()) { JCheckBox view = new JCheckBox(); view.setText(viewName); view.setActionCommand(viewName); view.addActionListener(selectionListener); view.setSelected(true); selectedViews.add(viewName); builder.append(view); this.checkBoxes.add(view); builder.nextLine(); } return builder.getPanel(); }
From source file:edu.udo.scaffoldhunter.gui.dialogs.SubsetFromRingDialog.java
License:Open Source License
/** * @param parent// w w w . ja v a 2 s. c om * @param minRingCount * @param maxRingCount * @param location * @param anchor */ public SubsetFromRingDialog(Frame parent, final int minRingCount, final int maxRingCount, Point location, Anchor anchor) { super(parent, _("ScaffoldTreeView.SubsetFromRing.Title"), true); returnValue = JOptionPane.CANCEL_OPTION; FormLayout layout = new FormLayout("pref:grow", ""); DefaultFormBuilder pb = new DefaultFormBuilder(layout); pb.setDefaultDialogBorder(); JLabel description = new JLabel( "<html><div width=300>" + _("ScaffoldTreeView.SubsetFromRing.Description") + "</div></html>"); pb.append(description); pb.appendSeparator(); ringLevelComboBox = new JComboBox<Integer>(); ringLevelComboBox.setModel(new DefaultComboBoxModel<Integer>() { @Override public Integer getElementAt(int index) { return index == 0 ? null : index + minRingCount - 1; } @Override public int getSize() { return maxRingCount - minRingCount + 2; } }); ringLevelComboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent evt) { updateAllowOK(); } }); pb.append(_("ScaffoldTreeView.SubsetFromRing.SelectRingLevel"), ringLevelComboBox); textField = new JTextField(_("ScaffoldTreeView.SubsetFromRing.DefaultSplitName")); textField.selectAll(); textField.getDocument().addDocumentListener(new DocumentListener() { @Override public void removeUpdate(DocumentEvent e) { updateAllowOK(); } @Override public void insertUpdate(DocumentEvent e) { updateAllowOK(); } @Override public void changedUpdate(DocumentEvent e) { } }); pb.append(_("ScaffoldTreeView.SubsetFromRing.SubsetName"), textField); errorLabel = new JLabel(" "); errorLabel.setForeground(Color.red); pb.append(errorLabel); okButton = StandardButtonFactory.createOKButton(okAction); okButton.setEnabled(false); cancelButton = StandardButtonFactory.createCancelButton(cancelAction); JPanel p = ButtonBarFactory.buildOKCancelBar(okButton, cancelButton); pb.append(p); getRootPane().setDefaultButton(okButton); // allow escape key to close the dialog getRootPane().registerKeyboardAction(cancelAction, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); setContentPane(pb.getPanel()); setMinimumSize(new Dimension(280, 0)); pack(); setResizable(false); if (location == null) { setLocationRelativeTo(parent); } else { switch (anchor) { case TOP_LEFT: // nothing to do break; case TOP_RIGHT: location.translate(-getWidth(), 0); break; } // make sure the dialog stays on screen Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); location.x = Math.min(location.x, screen.width - getWidth()); location.y = Math.min(location.y, screen.height - getHeight()); setLocation(location); } }
From source file:edu.udo.scaffoldhunter.gui.dialogs.TooltipConfigurationDialog.java
License:Open Source License
private JPanel buildPropertyPanel() { FormLayout layout = new FormLayout("p, 3dlu, c:p:g(.5), 3dlu, c:p:g(.5)"); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder();//w w w .j a v a2 s .c om List<PropertyDefinition> propDefs = Orderings.PROPERTY_DEFINITION_BY_TITLE .sortedCopy(dataset.getPropertyDefinitions().values()); Collections.sort(propDefs, Orderings.PROPERTY_DEFINITION_BY_PROPERTY_TYPE); Iterable<PropertyDefinition> molPropDefs = Iterables.filter(propDefs, Predicates.not(SHPredicates.IS_SCAFFOLD_PROPDEF)); Iterable<PropertyDefinition> scaffoldPropDefs = Iterables.filter(propDefs, SHPredicates.IS_SCAFFOLD_PROPDEF); if (!Iterables.isEmpty(molPropDefs)) { builder.appendSeparator(I18n.get("Tooltip.PropertyTitles.Molecule")); builder.nextLine(); buildTitle(builder, true); for (PropertyDefinition propDef : molPropDefs) { addProperty(builder, propDef); builder.nextLine(); } } if (!Iterables.isEmpty(scaffoldPropDefs)) { builder.appendSeparator(I18n.get("Tooltip.PropertyTitles.Scaffold")); buildTitle(builder, false); for (PropertyDefinition propDef : scaffoldPropDefs) { addProperty(builder, propDef); builder.nextLine(); } } return builder.getPanel(); }
From source file:edu.udo.scaffoldhunter.gui.GUIController.java
License:Open Source License
/** * Shows a password dialog and blocks the current thread until the dialog is * closed./*ww w. ja v a2s. c o m*/ * * @param data * url, database name and username of this object are displayed * in the dialog * * @return the password if the user entered a password and clicked OK, null * otherwise */ private String showPasswordDialog(ConnectionData data) { // Build the password panel final JPasswordField pwField = new JPasswordField(); DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("left:default, default, 200dlu")); builder.append("URL: ", new JLabel(data.getDbUrl())); builder.append("Database: ", new JLabel(data.getDbName())); builder.append("Username: ", new JLabel(data.getDbUsername())); builder.append(pwField, 3); // Show a password dialog with a nasty hack to set the focus to the // password field. // There is no beautiful way of focusing the field: // http://bugs.sun.com./bugdatabase/view_bug.do?bug_id=5018574 // The solution used here is: repeat setFocus using a timer until user // pressed key in password field // TODO maybe write a class PasswordDialog which sets up the dialog // manually, so that we get rid of this hack JOptionPane pwPane = new JOptionPane(builder.getPanel(), JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION); JDialog pwDialog = pwPane.createDialog("Enter password:"); final Timer timer = new Timer(1, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { pwField.requestFocusInWindow(); } }); timer.setRepeats(true); timer.start(); pwField.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { } @Override public void keyReleased(KeyEvent e) { } @Override public void keyPressed(KeyEvent e) { timer.stop(); } }); pwDialog.setVisible(true); // Handle return value Object returnValue = pwPane.getValue(); if (returnValue instanceof Integer) { int result = (Integer) returnValue; if (result == JOptionPane.OK_OPTION) { return new String(pwField.getPassword()); } } // User clicked cancel or closed the dialog return null; }
From source file:edu.umich.robot.SoarDataView.java
License:Open Source License
public SoarDataView(PropertyManager properties) { this.properties = properties; FormLayout layout = new FormLayout("right:pref, 4dlu, 60dlu", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder();//from ww w . ja va2 s. c o m builder.appendSeparator("collection mode"); ButtonGroup group = new ButtonGroup(); for (DataCollectionMode s : DataCollectionMode.values()) { JRadioButton b = new JRadioButton(); b.setSelected(properties.get(SoarProperties.DATA_COLLECTION_MODE) == s); modeButtons.put(s, b); group.add(b); builder.append(s.toString().toLowerCase(), b); } builder.appendSeparator("collection period"); periodCycles = new JTextField(); periodCycles.setText(Integer.toString(properties.get(SoarProperties.PERIOD_CYCLES))); builder.append("Collect data every n decision cycles", periodCycles); periodMillis = new JTextField(); periodMillis.setText(Integer.toString(properties.get(SoarProperties.PERIOD_MILLIS))); builder.append("Collect data every n milliseconds", periodMillis); ActionListener al = new ActionListener() { public void actionPerformed(ActionEvent arg0) { periodCycles.setEnabled(modeButtons.get(DataCollectionMode.DECISION_CYCLES).isSelected()); periodMillis.setEnabled(modeButtons.get(DataCollectionMode.ELAPSED_TIME).isSelected()); } }; al.actionPerformed(null); modeButtons.get(DataCollectionMode.DECISION_CYCLES).addActionListener(al); modeButtons.get(DataCollectionMode.ELAPSED_TIME).addActionListener(al); builder.appendSeparator("file"); file = properties.get(SoarProperties.DATA_FILE); fileLabel = new JLabel(); updateFileLabel(); chooser = new JButton("..."); builder.append("Data file", fileLabel); builder.append("Click to pick data file:"); builder.append(chooser); cancel = new JButton("Cancel"); builder.append(cancel); ok = new JButton("OK"); builder.append(ok); panel = builder.getPanel(); }
From source file:edu.umich.robot.SoarParametersView.java
License:Open Source License
public SoarParametersView(PropertyManager properties) { this.properties = properties; FormLayout layout = new FormLayout("right:pref, 4dlu, 100dlu", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder();/*from ww w .j av a 2s .c o m*/ builder.appendSeparator(AgentProperties.LEARN.toString()); ButtonGroup learnGroup = new ButtonGroup(); for (LearnSetting s : LearnSetting.values()) { JRadioButton b = new JRadioButton(); b.setSelected(properties.get(AgentProperties.LEARN) == s); learnButtons.put(s, b); learnGroup.add(b); builder.append(s.toString().toLowerCase(), b); } builder.appendSeparator("epmem, smem"); epmemLearn.setSelected(properties.get(AgentProperties.EPMEM_LEARNING)); builder.append(AgentProperties.EPMEM_LEARNING.toString(), epmemLearn); smemLearn.setSelected(properties.get(AgentProperties.SMEM_LEARNING)); builder.append(AgentProperties.SMEM_LEARNING.toString(), smemLearn); Joiner joiner = Joiner.on(" "); epmemExclusions.setText(joiner.join(properties.get(AgentProperties.EPMEM_EXCLUSIONS))); builder.append(AgentProperties.EPMEM_EXCLUSIONS.toString(), epmemExclusions); builder.appendSeparator("working memory parameters"); addSpField(builder, AgentProperties.DEFAULT_STORAGE_AREA_ID); addSpField(builder, AgentProperties.AREAS_HELD_IN); addSpField(builder, AgentProperties.OBJECTS_HELD_IN); addSpField(builder, AgentProperties.LOOK_AHEAD_PLANNING); addSpField(builder, AgentProperties.SEARCH_CONTROL_GO_TO_GATEWAY); addSpField(builder, AgentProperties.DELETE_OLD_AREAS); builder.appendSeparator("working memory parameters: mission"); ButtonGroup missionGroup = new ButtonGroup(); for (Mission s : Mission.values()) { JRadioButton b = new JRadioButton(); b.setSelected(properties.get(AgentProperties.MISSION) == s); missionButtons.put(s, b); missionGroup.add(b); builder.append(s.toString(), b); } builder.appendSeparator("miscellaneous commands"); misc.setRows(4); joiner = Joiner.on("\n"); misc.setText(joiner.join(properties.get(AgentProperties.MISC_COMMANDS))); builder.append(new JScrollPane(misc), 3); cancel = new JButton("Cancel"); ok = new JButton("OK"); builder.append(cancel); builder.append(ok); panel = builder.getPanel(); }