List of usage examples for com.jgoodies.binding.value ValueHolder ValueHolder
public ValueHolder()
From source file:ambit2.db.results.test.AmbitRowsEventTest.java
License:Open Source License
public static void main(String[] args) { // http://www.java2s.com/Code/Java/Swing-Components/JGoodiesBindingSelectionInListModelExample.htm try {/*w w w . j av a2 s.c o m*/ final AmbitRows<Dictionary> dictionary = new AmbitRows<Dictionary>() { /** * */ private static final long serialVersionUID = 6274513733204291475L; @Override protected synchronized IQueryRetrieval createNewQuery(Dictionary target) throws AmbitException { TemplateQuery q = new TemplateQuery(); q.setValue(target.getTemplate()); return q; } }; final AmbitRows<Property> properties = new AmbitRows<Property>() { @Override protected synchronized IQueryRetrieval createNewQuery(Property target) throws AmbitException { QueryField q = new QueryField(); q.setFieldname(target); return q; } }; dictionary.addPropertyChangeListener(dictionary.getPropertyname(), properties); dictionary.addPropertyChangeListener("status", properties); AmbitRowsEventTest test = new AmbitRowsEventTest(); test.setUpDatabase(test.getTestDatabase()); IDatabaseConnection c = test.getConnection("localhost", "ambit2", "3306", "guest", "guest"); dictionary.setConnection(c.getConnection()); properties.setConnection(c.getConnection()); DictionaryObjectQuery q = new DictionaryObjectQuery(); q.setValue("Dataset"); PropertyChangeSupport ps = new PropertyChangeSupport(test); ps.addPropertyChangeListener("topquery", dictionary); ps.firePropertyChange(new QueryChangeEvent(test, "topquery", null, q)); final QueryField qf = new QueryField(); properties.addPropertyChangeListener(properties.getPropertyname(), new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { try { IQueryRetrieval r = properties.process((Property) evt.getNewValue()); qf.setFieldname(((QueryField) r).getFieldname()); } catch (AmbitException x) { x.printStackTrace(); } } }); ListModel listModel = new RowsModel<Dictionary>(dictionary); ValueModel selectedItemHolder1 = new ValueHolder(); SelectionInList<Dictionary> selectionInList = new SelectionInList<Dictionary>(listModel, selectedItemHolder1); final JList jlist = new JList(); Bindings.bind(jlist, selectionInList); BeanAdapter beanAdapter = new BeanAdapter(selectionInList); ValueModel nameModel = beanAdapter.getValueModel("template"); ValueModel parentModel = beanAdapter.getValueModel("parentTemplate"); ListModel listModel2 = new RowsModel<Property>(properties); ValueModel selectedItemHolder2 = new ValueHolder(); SelectionInList<Property> selectionInList2 = new SelectionInList<Property>(listModel2, selectedItemHolder2); BeanAdapter beanAdapter2 = new BeanAdapter(qf); ValueModel fieldnameModel = beanAdapter2.getValueModel("fieldname"); // ValueModel conditionModel = // beanAdapter2.getValueModel("condition"); ValueModel valueModel = beanAdapter2.getValueModel("value"); selectionInList.addPropertyChangeListener("value", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { try { dictionary.process((Dictionary) evt.getNewValue()); } catch (Exception x) { x.printStackTrace(); } } }); selectionInList2.addPropertyChangeListener("value", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { try { } catch (Exception x) { x.printStackTrace(); } } }); JPanel p = new JPanel(); p.add(BasicComponentFactory.createTextField(nameModel)); p.add(BasicComponentFactory.createTextField(parentModel)); p.setLayout(new BoxLayout(p, BoxLayout.PAGE_AXIS)); p.add(new JLabel("Dictionary")); p.add(new JScrollPane(jlist)); // p.add(new JComboBox(new // ComboBoxAdapter<Dictionary>(selectionInList))); p.add(new JLabel("Properties")); final JComboBox combo = new JComboBox(new ComboBoxAdapter<Property>(selectionInList2)); p.add(combo); p.add(BasicComponentFactory.createTextField(fieldnameModel)); // p.add(BasicComponentFactory.createTextField(conditionModel)); p.add(BasicComponentFactory.createIntegerField(valueModel)); properties.addPropertyChangeListener("status", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { combo.setEnabled((Boolean) evt.getNewValue()); } }); JOptionPane.showMessageDialog(null, p); c.close(); } catch (Exception x) { x.printStackTrace(); } }
From source file:ambit2.dbui.dictionary.DictionaryQueryPanel.java
License:Open Source License
protected JComponent createFieldnameComponent() { ValueHolder vh = new ValueHolder(); SelectionInList<Dictionary> fieldnames = new SelectionInList<Dictionary>(new RowsModel<Dictionary>(parents), vh);// w ww .ja v a 2s .c o m fieldnames.addPropertyChangeListener("value", new PropertyChangeListener() { final TemplateQuery tq = new TemplateQuery(); public void propertyChange(PropertyChangeEvent evt) { try { if (evt.getNewValue() != null) { tq.setCondition(StringCondition.getInstance(StringCondition.C_EQ)); tq.setValue(((Dictionary) evt.getNewValue()).getTemplate()); details.setQuery(tq); if (details.size() == 0) details.close(); else { details.beforeFirst(); while (details.next()) { profile.add(details.getObject()); } } } } catch (Exception x) { x.printStackTrace(); } } }); JComboBox box = BasicComponentFactory.createComboBox(fieldnames); box.setRenderer(new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); if ((value != null) && (c instanceof JLabel)) ((JLabel) c).setText(((Dictionary) value).getTemplate()); return c; } }); return box; }
From source file:com.salas.bb.core.GlobalController.java
License:Open Source License
/** * Creating invalid discovery dialog in EDT. * * @return dialog./*from w w w. ja va2s.c om*/ */ private InvalidDiscoveryDialog createDialog() { final ValueHolder vh = new ValueHolder(); Runnable task = new Runnable() { public void run() { InvalidDiscoveryDialog dialog = new InvalidDiscoveryDialog(getMainFrame()); synchronized (vh) { vh.setValue(dialog); } } }; UifUtilities.invokeAndWait(task, "Failed to create invalid discovery dialog.", Level.SEVERE); return (InvalidDiscoveryDialog) vh.getValue(); }
From source file:com.salas.bb.installation.Installer.java
License:Open Source License
/** * Displays wizard-like dialog box with several pages to get information from user. * * @return installation settings or <code>null</code> if user cancelled. *///from w ww.j a va2 s. co m private InstallationSettings getInstallationSettings() { final ValueHolder settingsHolder = new ValueHolder(); UifUtilities.invokeAndWait(new Runnable() { public void run() { InstallationWizard wizard = new InstallationWizard(); InstallationSettings settings = wizard.openDialog(); settingsHolder.setValue(settings); } }, "Failed to get installation settings.", Level.SEVERE); return (InstallationSettings) settingsHolder.getValue(); }
From source file:de.dal33t.powerfolder.ui.dialog.AddressEditor.java
License:Open Source License
public AddressEditor(Controller controller, String string) { super(Senior.NONE, controller, true); result = EditorResult.CANCEL;/* ww w.ja v a2 s . c o m*/ validationResultModel = new DefaultValidationResultModel(); addressModel = new ValueHolder(); // Trigger validation when the address model changes addressModel.addValueChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { String addressText = (String) evt.getNewValue(); ValidationResult aResult = new AddressRangeValidator(addressText).validate(null); validationResultModel.setResult(aResult); } }); addressModel.setValue(string); ActionListener okAction = new OKAction(); okButton = createOKButton(okAction); cancelButton = createCancelButton(new ActionListener() { public void actionPerformed(ActionEvent e) { close(); } }); // Create a textfield that is bound to the address model inputLine = BasicComponentFactory.createTextField(addressModel, false); inputLine.setColumns(40); inputLine.addActionListener(okAction); }
From source file:de.dal33t.powerfolder.ui.dialog.directory.DirectoryChooser.java
License:Open Source License
private void newDirectoryAction() { // Select the currently selected directory if (tree.getSelectionPath() == null || !(tree.getSelectionPath().getLastPathComponent() instanceof DirectoryTreeNode)) { return;// w w w . j av a 2s .co m } DirectoryTreeNode dtn = (DirectoryTreeNode) tree.getSelectionPath().getLastPathComponent(); Path selected = dtn.getDir(); String baseFile = selected.toAbsolutePath().toString(); if (baseFile != null) { ValueModel subDirValueModel = new ValueHolder(); NewDirectoryCreator ndc = new NewDirectoryCreator(getController(), true, baseFile, subDirValueModel); ndc.open(); Object o = subDirValueModel.getValue(); if (o != null) { String subDir = ((String) o).trim(); if (subDir.length() > 0) { Path f = Paths.get(baseFile, subDir); if (Files.exists(f)) { DialogFactory.genericDialog(getController(), Translation.getTranslation("dialog.directorychooser.new.description"), Translation.getTranslation("dialog.directorychooser.new.exists", f.toAbsolutePath().toString()), GenericDialogType.WARN); } else { boolean success = false; try { Files.createDirectories(f); success = true; } catch (IOException ioe) { logInfo(ioe.getMessage()); } if (success) { TreePath selectionPath = tree.getSelectionPath(); Object parentComponent = selectionPath.getLastPathComponent(); if (parentComponent instanceof DirectoryTreeNode) { // Expand parent of new folder, so new child // shows. DirectoryTreeNode parentNode = (DirectoryTreeNode) parentComponent; model.insertNodeInto(new DirectoryTreeNode(getController(), null, f, false, true), parentNode, parentNode.getChildCount()); // Find new folder in parent. Enumeration children = parentNode.children(); while (children.hasMoreElements()) { Object node = children.nextElement(); if (node instanceof DirectoryTreeNode) { DirectoryTreeNode childNode = (DirectoryTreeNode) node; if (childNode.getUserObject() instanceof File) { Path childFile = ((File) childNode.getUserObject()).toPath(); if (childFile.equals(f)) { // Expand to child. TreeNode[] childPathNodes = model.getPathToRoot(childNode); TreePath childPath = new TreePath(childPathNodes); tree.setSelectionPath(childPath); tree.scrollPathToVisible(childPath); break; } } else { TreeNode[] pathNode = model.getPathToRoot(childNode); TreePath path = new TreePath(pathNode); tree.setSelectionPath(path); tree.scrollPathToVisible(path); } } } } } else { DialogFactory.genericDialog(getController(), Translation.getTranslation("dialog.directorychooser.new.description"), Translation.getTranslation("dialog.directorychooser.new.problem", f.toAbsolutePath().toString()), GenericDialogType.WARN); } } } } } }
From source file:de.dal33t.powerfolder.ui.dialog.SingleFileTransferDialog.java
License:Open Source License
/** * Initialize the dialog components./*from ww w.j a v a 2 s .c o m*/ */ private void initComponents() { cancelButton = createCancelButton(new ActionListener() { public void actionPerformed(ActionEvent e) { close(); } }); // Buttons createTransferButton(); computersTextModel = new ValueHolder(); computersTextModel.setValue(Translation.getTranslation("dialog.node_select.no_computers")); computersTextModel.addValueChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { updateTransferButton(); } }); computersText = BasicComponentFactory.createTextField(computersTextModel, false); computersText.setEnabled(false); computersSelectButton = new JButtonMini(Icons.getIconById(Icons.NODE_CONNECTED), Translation.getTranslation("dialog.single_file_transfer.select_computer.tip")); computersSelectButton.addActionListener(new MyActionListener()); updateTransferButton(); messageTextArea = new JTextArea(); }
From source file:de.dal33t.powerfolder.ui.information.folder.files.FilesTab.java
License:Open Source License
/** * Constructor//from w ww . j a v a2 s. c o m * * @param controller */ public FilesTab(Controller controller) { super(controller); flatMode = new ValueHolder(); statsPanel = new FilesStatsPanel(getController()); filterTextField = new FileFilterTextField(getController()); directoryFilter = new DirectoryFilter(controller, filterTextField.getSearchTextValueModel(), filterTextField.getSearchModeValueModel()); directoryFilter.addListener(this); tablePanel = new FilesTablePanel(controller, this); directoryFilter.addListener(tablePanel); directoryFilter.setFlatMode(flatMode); breadcrumbPanel = new FilesBreadcrumbPanel(getController(), this); getController().getNodeManager().addNodeManagerListener(new MyNodeManagerListener()); filterSelectionComboBox = new JComboBox<>(); filterSelectionComboBox.setToolTipText(Translation.getTranslation("files_tab.combo.tool_tip")); filterSelectionComboBox.addItem(Translation.getTranslation("files_tab.combo.local_and_incoming")); filterSelectionComboBox.addItem(Translation.getTranslation("files_tab.combo.local_files_only")); // filterSelectionComboBox.addItem(Translation // .getTranslation("files_tab.combo.incoming_files_only")); filterSelectionComboBox.addItem(Translation.getTranslation("files_tab.combo.new_files_only")); filterSelectionComboBox.addItem(Translation.getTranslation("files_tab.combo.deleted_and_previous_files")); filterSelectionComboBox.addItem(Translation.getTranslation("files_tab.combo.unsynchronized_files")); filterSelectionComboBox.addActionListener(new MyActionListener()); }
From source file:de.dal33t.powerfolder.ui.panel.SyncProfileSelectorPanel.java
License:Open Source License
/** * Initialize the visual components./*www . j av a2 s.com*/ * * @param syncProfile */ private void initComponents(SyncProfile syncProfile) { syncProfilesCombo = new JComboBox<>(); syncProfilesCombo.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { udateSyncProfile(); } }); valueModel = new ValueHolder(); valueModel.setValue(syncProfile); configureButton = new JButtonMini(new MyConfigureAction(getController())); deleteButton = new JButtonMini(new MyDeleteAction(getController())); configureCombo(syncProfile); // Warn if changing to delete type profiles addModelValueChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (!isOkToSwitchToProfile((SyncProfile) evt.getNewValue())) { setSyncProfile((SyncProfile) evt.getOldValue(), false); } } }); enableButtons(); }
From source file:de.dal33t.powerfolder.ui.preferences.GeneralSettingsTab.java
License:Open Source License
/** * Initializes all needed ui components//from w w w . j a v a 2s.c om */ private void initComponents() { languageChooser = createLanguageChooser(); nickField = new JTextField(getController().getMySelf().getNick()); updateCheck = new JCheckBox(Translation.getTranslation("preferences.general.check_for_program_updates")); updateCheck.setSelected(PreferencesEntry.CHECK_UPDATE.getValueBoolean(getController())); xBehaviorChooser = createXBehaviorChooser(); if (OSUtil.isStartupItemSupported()) { runOnStartupBox = new JCheckBox(Translation.getTranslation("preferences.general.start_with_windows")); try { runOnStartupBox.setSelected(OSUtil.hasPFStartup(getController())); } catch (UnsupportedOperationException uoe) { runOnStartupBox = null; } } versionModel = new ValueHolder(); archiveModeSelectorPanel = new ArchiveModeSelectorPanel(getController(), versionModel); archiveModeSelectorPanel .setArchiveMode(ConfigurationEntry.DEFAULT_ARCHIVE_VERSIONS.getValueInt(getController())); archiveCleanupCombo = new JComboBox<String>(); archiveCleanupCombo.addItem(Translation.getTranslation("preferences.general.archive_cleanup_day")); // 1 archiveCleanupCombo.addItem(Translation.getTranslation("preferences.general.archive_cleanup_week")); // 7 archiveCleanupCombo.addItem(Translation.getTranslation("preferences.general.archive_cleanup_month")); // 31 archiveCleanupCombo.addItem(Translation.getTranslation("preferences.general.archive_cleanup_year")); // 365 archiveCleanupCombo.addItem(Translation.getTranslation("preferences.general.archive_cleanup_never")); // 2147483647 int cleanup = ConfigurationEntry.DEFAULT_ARCHIVE_CLEANUP_DAYS.getValueInt(getController()); switch (cleanup) { case 1: archiveCleanupCombo.setSelectedIndex(0); break; case 7: archiveCleanupCombo.setSelectedIndex(1); break; case 31: default: archiveCleanupCombo.setSelectedIndex(2); break; case 365: archiveCleanupCombo.setSelectedIndex(3); break; case Integer.MAX_VALUE: archiveCleanupCombo.setSelectedIndex(4); break; case 0: archiveCleanupCombo.setSelectedIndex(4); break; } cleanupAction = new MyCleanupAction(getController()); // +++ PFC-2385 modeChooser = createModeChooser(); // END PFC-2385 }