Example usage for com.jgoodies.binding.value ValueHolder ValueHolder

List of usage examples for com.jgoodies.binding.value ValueHolder ValueHolder

Introduction

In this page you can find the example usage for com.jgoodies.binding.value ValueHolder ValueHolder.

Prototype

public ValueHolder() 

Source Link

Document

Constructs a ValueHolder with null as initial value.

Usage

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
}