Search in sources :

Example 1 with JFilterableTreeComponent

use of net.sourceforge.processdash.ui.lib.JFilterableTreeComponent in project processdash by dtuma.

the class QuickSelectTaskAction method selectTask.

private void selectTask() {
    if (taskProvider == null || activeTaskModel == null)
        throw new IllegalStateException("Object not yet initialized");
    TreeTableModel tasks = taskProvider.getTaskSelectionChoices();
    final JFilterableTreeComponent selector = new JFilterableTreeComponent(tasks, resources.getString("Choose_Task.Find"), false);
    final Object nodeToSelect = taskProvider.getTreeNodeForPath(activeTaskModel.getPath());
    loadPrefs(selector);
    selector.setMatchEntirePath(true);
    TaskCompletionRenderer rend = null;
    if (parentComponent instanceof DashboardContext)
        rend = new TaskCompletionRenderer(selector, (DashboardContext) parentComponent);
    new JOptionPaneActionHandler().install(selector);
    Object[] message = new Object[] { resources.getString("Choose_Task.Prompt"), selector, new JOptionPaneTweaker.MakeResizable(), new JOptionPaneTweaker.GrabFocus(selector.getFilterTextField()), new JOptionPaneTweaker(50) {

        public void doTweak(JDialog dialog) {
            if (nodeToSelect != null)
                selector.setAnchorSelectedNode(nodeToSelect);
        }
    } };
    int userChoice = JOptionPane.showConfirmDialog(parentComponent, message, resources.getString("Choose_Task.Title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
    savePrefs(selector);
    if (rend != null)
        rend.dispose();
    if (userChoice != JOptionPane.OK_OPTION)
        return;
    Object newTask = selector.getSelectedLeaf();
    if (newTask == null)
        return;
    String newPath = taskProvider.getPathForTreeNode(newTask);
    if (StringUtils.hasValue(newPath))
        activeTaskModel.setPath(newPath);
}
Also used : DashboardContext(net.sourceforge.processdash.DashboardContext) JOptionPaneTweaker(net.sourceforge.processdash.ui.lib.JOptionPaneTweaker) JOptionPaneActionHandler(net.sourceforge.processdash.ui.lib.JOptionPaneActionHandler) TreeTableModel(net.sourceforge.processdash.ui.lib.TreeTableModel) JFilterableTreeComponent(net.sourceforge.processdash.ui.lib.JFilterableTreeComponent) JDialog(javax.swing.JDialog)

Aggregations

JDialog (javax.swing.JDialog)1 DashboardContext (net.sourceforge.processdash.DashboardContext)1 JFilterableTreeComponent (net.sourceforge.processdash.ui.lib.JFilterableTreeComponent)1 JOptionPaneActionHandler (net.sourceforge.processdash.ui.lib.JOptionPaneActionHandler)1 JOptionPaneTweaker (net.sourceforge.processdash.ui.lib.JOptionPaneTweaker)1 TreeTableModel (net.sourceforge.processdash.ui.lib.TreeTableModel)1