Example usage for javax.swing.tree DefaultMutableTreeNode DefaultMutableTreeNode

List of usage examples for javax.swing.tree DefaultMutableTreeNode DefaultMutableTreeNode

Introduction

In this page you can find the example usage for javax.swing.tree DefaultMutableTreeNode DefaultMutableTreeNode.

Prototype

public DefaultMutableTreeNode() 

Source Link

Document

Creates a tree node that has no parent and no children, but which allows children.

Usage

From source file:edu.ku.brc.specify.ui.containers.ContainerTreePanel.java

/**
 * @param parentNode/*from w  w  w .  jav a2s  . co  m*/
 * @param container
 * @param colObj
 */
private void loadContainerTree(final DefaultMutableTreeNode parentNode, final Container container,
        final CollectionObject colObj) {
    if (container != null) {
        container.forceLoad();

        int cnt = parentNode.getChildCount();
        Vector<CollectionObject> coKids = new Vector<CollectionObject>(container.getCollectionObjectKids());
        Collections.sort(coKids);
        for (CollectionObject co : coKids) {
            cnt = parentNode.getChildCount();
            DefaultMutableTreeNode node = new DefaultMutableTreeNode();
            node.setUserObject(co);
            colObjIdHash.add(co.getId());
            model.insertNodeInto(node, parentNode, cnt);
            loadContainerTree(node, null, co);
        }

        Vector<Container> cnKids = new Vector<Container>(container.getChildrenList());
        Collections.sort(cnKids);
        for (Container cn : cnKids) {
            cnt = parentNode.getChildCount();
            DefaultMutableTreeNode node = new DefaultMutableTreeNode();
            node.setUserObject(cn);
            containerIdHash.add(cn.getId());
            model.insertNodeInto(node, parentNode, cnt);
            loadContainerTree(node, cn, null);
        }

    } else if (colObj != null) {
        if (colObj.getContainer() != null) {
            loadContainerTree(parentNode, colObj.getContainer(), null);
        }
    } else {
        // error
    }
}

From source file:gdt.jgui.entity.index.JIndexPanel.java

private DefaultMutableTreeNode instantiateNode(Sack index, String nodeKey$) {
    try {//w  w  w. j a  v  a2 s  .c om
        //   System.out.println("IndexPanel:instantiateNode:"+nodeKey$);
        String nodeLocator$ = index.getElementItemAt("index.jlocator", nodeKey$);
        if (nodeLocator$ == null)
            return null;
        //   System.out.println("IndexPanel:instantiateNode:locator="+nodeLocator$);
        DefaultMutableTreeNode node = new DefaultMutableTreeNode();
        node.setUserObject(nodeLocator$);
        Properties locator = Locator.toProperties(nodeLocator$);
        if (!NODE_TYPE_GROUP.equals(locator.getProperty(NODE_TYPE)))
            return node;
        String[] sa = listOrderedGroupMembers(index, nodeKey$);
        if (sa == null || sa.length < 1) {
            System.out.println("IndexPanel:instantiateNode:no member in group=" + nodeKey$);
            return node;
        }
        DefaultMutableTreeNode member;
        //  System.out.println("IndexPanel:instantiateNode:members="+sa.length);

        for (String aSa : sa) {
            //nodeLocator$=index.getElementItemAt("index.jlocator", aSa);
            member = instantiateNode(index, aSa);
            if (member != null)
                node.add(member);
        }
        return node;
    } catch (Exception e) {
        LOGGER.severe(e.toString());
    }
    return null;
}

From source file:edu.ku.brc.specify.ui.containers.ContainerTreePanel.java

/**
 * //from   w  w w  .jav a 2 s .c  om
 */
private void addColObjAsChild(final DefaultMutableTreeNode parentNodeArg, final CollectionObject colObj) {
    DefaultMutableTreeNode parentNode = parentNodeArg == null ? getSelectedTreeNode() : parentNodeArg;
    if (parentNode != null) {
        if (colObj != null) {
            Container container = (Container) parentNode.getUserObject();

            colObj.setContainerOwner(container);
            container.getCollectionObjectKids().add(colObj);

            DefaultMutableTreeNode newNode = new DefaultMutableTreeNode();
            newNode.setUserObject(colObj);
            colObjIdHash.add(colObj.getId());
            int inx = parentNode.getChildCount();
            model.insertNodeInto(newNode, parentNode, inx);
            model.nodesWereInserted(parentNode, new int[] { inx });
            model.nodeChanged(parentNode);
            model.reload();
            tree.restoreTree();

            expandToNode(newNode);
        }
    }
}

From source file:eu.crisis_economics.abm.dashboard.Page_Parameters.java

private JPanel createAParameterBox(final boolean first) {

    final JLabel runLabel = new JLabel("<html><b>Number of runs:</b> 0</html>");
    final JLabel warningLabel = new JLabel();

    final JButton closeButton = new JButton();
    closeButton.setOpaque(false);// ww w. jav  a  2 s.  c o m
    closeButton.setBorder(null);
    closeButton.setFocusable(false);

    if (!first) {
        closeButton.setRolloverIcon(PARAMETER_BOX_REMOVE);
        closeButton.setRolloverEnabled(true);
        closeButton.setIcon(RGBGrayFilter.getDisabledIcon(closeButton, PARAMETER_BOX_REMOVE));
        closeButton.setActionCommand(ACTIONCOMMAND_REMOVE_BOX);
    }

    final JScrollPane treeScrPane = new JScrollPane();
    final DefaultMutableTreeNode treeRoot = new DefaultMutableTreeNode();
    final JTree tree = new JTree(treeRoot);
    ToolTipManager.sharedInstance().registerComponent(tree);

    tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
    tree.setCellRenderer(new ParameterBoxTreeRenderer());
    tree.addTreeSelectionListener(new TreeSelectionListener() {
        public void valueChanged(final TreeSelectionEvent e) {
            final TreePath selectionPath = tree.getSelectionPath();
            boolean success = true;
            if (editedNode != null
                    && (selectionPath == null || !editedNode.equals(selectionPath.getLastPathComponent())))
                success = modify();

            if (success) {
                if (selectionPath != null) {
                    cancelAllSelectionBut(tree);
                    final DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectionPath
                            .getLastPathComponent();
                    if (!node.equals(editedNode)) {
                        ParameterInATree userObj = null;
                        final DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
                        if (!node.isRoot()
                                && selectionPath.getPathCount() == model.getPathToRoot(node).length) {
                            userObj = (ParameterInATree) node.getUserObject();
                            final ParameterInfo info = userObj.info;
                            editedNode = node;
                            editedTree = tree;
                            edit(info);
                        } else {
                            tree.setSelectionPath(null);
                            if (cancelButton.isEnabled())
                                cancelButton.doClick();
                            resetSettings();
                            enableDisableSettings(false);
                            editedNode = null;
                            editedTree = null;
                        }

                        updateDescriptionField(userObj);
                    } else
                        updateDescriptionField();

                } else
                    updateDescriptionField();

                enableDisableParameterCombinationButtons();
            } else {
                final DefaultTreeModel model = (DefaultTreeModel) editedTree.getModel();
                final DefaultMutableTreeNode storedEditedNode = editedNode;
                editedNode = null;
                tree.setSelectionPath(null);
                editedNode = storedEditedNode;
                editedTree.setSelectionPath(new TreePath(model.getPathToRoot(editedNode)));
            }
        }
    });

    treeScrPane.setViewportView(tree);
    treeScrPane.setBorder(null);
    treeScrPane.setViewportBorder(null);
    treeScrPane.setPreferredSize(new Dimension(450, 250));

    final JButton upButton = new JButton();
    upButton.setOpaque(false);
    upButton.setRolloverEnabled(true);
    upButton.setIcon(PARAMETER_UP_ICON);
    upButton.setRolloverIcon(PARAMETER_UP_ICON_RO);
    upButton.setDisabledIcon(PARAMETER_UP_ICON_DIS);
    upButton.setBorder(null);
    upButton.setToolTipText("Move up the selected parameter");
    upButton.setActionCommand(ACTIONCOMMAND_MOVE_UP);

    final JButton downButton = new JButton();
    downButton.setOpaque(false);
    downButton.setRolloverEnabled(true);
    downButton.setIcon(PARAMETER_DOWN_ICON);
    downButton.setRolloverIcon(PARAMETER_DOWN_ICON_RO);
    downButton.setDisabledIcon(PARAMETER_DOWN_ICON_DIS);
    downButton.setBorder(null);
    downButton.setToolTipText("Move down the selected parameter");
    downButton.setActionCommand(ACTIONCOMMAND_MOVE_DOWN);

    final JPanel mainPanel = FormsUtils.build("~ f:p:g ~ p ~ r:p",
            "012||" + "333||" + "44_||" + "445||" + "446||" + "44_ f:p:g", runLabel, first ? "" : warningLabel,
            first ? warningLabel : closeButton, new FormsUtils.Separator(""), treeScrPane, upButton, downButton)
            .getPanel();

    mainPanel.setBorder(BorderFactory.createTitledBorder(""));

    final JButton addButton = new JButton();
    addButton.setOpaque(false);
    addButton.setRolloverEnabled(true);
    addButton.setIcon(PARAMETER_ADD_ICON);
    addButton.setRolloverIcon(PARAMETER_ADD_ICON_RO);
    addButton.setDisabledIcon(PARAMETER_ADD_ICON_DIS);
    addButton.setBorder(null);
    addButton.setToolTipText("Add selected parameter");
    addButton.setActionCommand(ACTIONCOMMAND_ADD_PARAM);

    final JButton removeButton = new JButton();
    removeButton.setOpaque(false);
    removeButton.setRolloverEnabled(true);
    removeButton.setIcon(PARAMETER_REMOVE_ICON);
    removeButton.setRolloverIcon(PARAMETER_REMOVE_ICON_RO);
    removeButton.setDisabledIcon(PARAMETER_REMOVE_ICON_DIS);
    removeButton.setBorder(null);
    removeButton.setToolTipText("Remove selected parameter");
    removeButton.setActionCommand(ACTIONCOMMAND_REMOVE_PARAM);

    final JPanel result = FormsUtils.build("p ~ f:p:g", "_0 f:p:g||" + "10 p ||" + "20 p||" + "_0 f:p:g",
            mainPanel, addButton, removeButton).getPanel();

    Style.registerCssClasses(result, Dashboard.CSS_CLASS_COMMON_PANEL);

    final ParameterCombinationGUI pcGUI = new ParameterCombinationGUI(tree, treeRoot, runLabel, warningLabel,
            addButton, removeButton, upButton, downButton);
    parameterTreeBranches.add(pcGUI);

    final ActionListener boxActionListener = new ActionListener() {

        //====================================================================================================
        // methods

        //----------------------------------------------------------------------------------------------------
        public void actionPerformed(final ActionEvent e) {
            final String cmd = e.getActionCommand();

            if (ACTIONCOMMAND_ADD_PARAM.equals(cmd))
                handleAddParameter(pcGUI);
            else if (ACTIONCOMMAND_REMOVE_PARAM.equals(cmd))
                handleRemoveParameter(tree);
            else if (ACTIONCOMMAND_REMOVE_BOX.equals(cmd))
                handleRemoveBox(tree);
            else if (ACTIONCOMMAND_MOVE_UP.equals(cmd))
                handleMoveUp();
            else if (ACTIONCOMMAND_MOVE_DOWN.equals(cmd))
                handleMoveDown();
        }

        //----------------------------------------------------------------------------------------------------
        private void handleAddParameter(final ParameterCombinationGUI pcGUI) {
            final Object[] selectedValues = parameterList.getSelectedValues();
            if (selectedValues != null && selectedValues.length > 0) {
                final AvailableParameter[] params = new AvailableParameter[selectedValues.length];
                System.arraycopy(selectedValues, 0, params, 0, selectedValues.length);
                addParameterToTree(params, pcGUI);
                enableDisableParameterCombinationButtons();
            }
        }

        //----------------------------------------------------------------------------------------------------
        private void handleRemoveParameter(final JTree tree) {
            final TreePath selectionPath = tree.getSelectionPath();
            if (selectionPath != null) {
                cancelButton.doClick();

                final DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectionPath
                        .getLastPathComponent();
                if (!node.isRoot()) {
                    final DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) node.getParent();
                    if (parentNode.isRoot()) {
                        removeParameter(tree, node, parentNode);
                        enableDisableParameterCombinationButtons();
                    }
                }
            }
        }

        //----------------------------------------------------------------------------------------------------
        private void handleRemoveBox(final JTree tree) {
            final int answer = Utilities.askUser(dashboard, false, "Comfirmation",
                    "This operation deletes the combination.",
                    "All related parameter returns back to the list on the left side.", "Are you sure?");
            if (answer == 1) {
                final DefaultTreeModel treeModel = (DefaultTreeModel) tree.getModel();

                if (tree.getSelectionCount() > 0) {
                    editedNode = null;
                    tree.setSelectionPath(null);
                    if (cancelButton.isEnabled())
                        cancelButton.doClick();
                }

                final DefaultMutableTreeNode root = (DefaultMutableTreeNode) treeModel.getRoot();
                for (int i = 0; i < root.getChildCount(); ++i) {
                    final DefaultMutableTreeNode node = (DefaultMutableTreeNode) root.getChildAt(i);
                    removeParameter(tree, node, root);
                }

                enableDisableParameterCombinationButtons();

                parameterTreeBranches.remove(pcGUI);
                combinationsPanel.remove(result);
                combinationsPanel.revalidate();

                updateNumberOfRuns();
            }
        }

        //----------------------------------------------------------------------------------------------------
        private void removeParameter(final JTree tree, final DefaultMutableTreeNode node,
                final DefaultMutableTreeNode parentNode) {
            final ParameterInATree userObj = (ParameterInATree) node.getUserObject();
            final ParameterInfo originalInfo = findOriginalInfo(userObj.info);
            if (originalInfo != null) {
                final DefaultListModel model = (DefaultListModel) parameterList.getModel();
                model.addElement(new AvailableParameter(originalInfo, currentModelHandler.getModelClass()));
                final DefaultTreeModel treeModel = (DefaultTreeModel) tree.getModel();
                treeModel.removeNodeFromParent(node);
                updateNumberOfRuns();
                tree.expandPath(new TreePath(treeModel.getPathToRoot(parentNode)));
            } else
                throw new IllegalStateException(
                        "Parameter " + userObj.info.getName() + " is not found in the model.");
        }

        //----------------------------------------------------------------------------------------------------
        private void handleMoveUp() {
            final TreePath selectionPath = tree.getSelectionPath();
            if (selectionPath != null) {
                boolean success = true;
                if (editedNode != null)
                    success = modify();

                if (success) {
                    final DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectionPath
                            .getLastPathComponent();
                    final DefaultMutableTreeNode parent = (DefaultMutableTreeNode) node.getParent();

                    if (parent == null || parent.getFirstChild().equals(node)) {
                        tree.setSelectionPath(null); // we need this to preserve the state of the parameter settings panel
                        tree.setSelectionPath(new TreePath(node.getPath()));
                        return;
                    }

                    final int index = parent.getIndex(node);
                    final DefaultTreeModel treemodel = (DefaultTreeModel) tree.getModel();
                    treemodel.removeNodeFromParent(node);
                    treemodel.insertNodeInto(node, parent, index - 1);
                    tree.setSelectionPath(new TreePath(node.getPath()));
                }

            }
        }

        //----------------------------------------------------------------------------------------------------
        private void handleMoveDown() {
            final TreePath selectionPath = tree.getSelectionPath();
            if (selectionPath != null) {
                boolean success = true;
                if (editedNode != null)
                    success = modify();

                if (success) {
                    final DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectionPath
                            .getLastPathComponent();
                    final DefaultMutableTreeNode parent = (DefaultMutableTreeNode) node.getParent();

                    if (parent == null || parent.getLastChild().equals(node)) {
                        tree.setSelectionPath(null); // we need this to preserve the state of the parameter settings panel
                        tree.setSelectionPath(new TreePath(node.getPath()));
                        return;
                    }

                    final int index = parent.getIndex(node);
                    final DefaultTreeModel treemodel = (DefaultTreeModel) tree.getModel();
                    treemodel.removeNodeFromParent(node);
                    treemodel.insertNodeInto(node, parent, index + 1);
                    tree.setSelectionPath(new TreePath(node.getPath()));
                }
            }
        }
    };

    GUIUtils.addActionListener(boxActionListener, closeButton, upButton, downButton, addButton, removeButton);

    result.setPreferredSize(new Dimension(500, 250));
    enableDisableParameterCombinationButtons();

    Style.apply(result, dashboard.getCssStyle());

    return result;
}

From source file:edu.ku.brc.specify.ui.containers.ContainerTreePanel.java

/**
 * //from  w  w  w .j a va  2s. c  o m
 */
private void addContainer(final boolean doSearch) {
    if (checkForChanges()) {
        DefaultMutableTreeNode parentNode = getSelectedTreeNode();
        if (parentNode != null) {
            Container parentContainer = (Container) parentNode.getUserObject();
            Container newContainer = doSearch ? (Container) searchForDataObj(Container.class)
                    : createContainer(parentContainer);
            if (newContainer != null) {
                if (doSearch) {
                    // check here to see if they are already parented.
                    newContainer.setParent(parentContainer);
                    parentContainer.getChildren().add(newContainer);
                    saveObjs(newContainer, parentContainer);
                }

                DefaultMutableTreeNode newNode = new DefaultMutableTreeNode();
                newNode.setUserObject(newContainer);
                if (newContainer.getId() != null) {
                    containerIdHash.add(newContainer.getId());
                }

                int inx = parentNode.getChildCount();
                model.insertNodeInto(newNode, parentNode, inx);
                model.nodesWereInserted(parentNode, new int[] { inx });
                model.nodeChanged(parentNode);
                model.reload();
                tree.restoreTree();

                expandToNode(newNode); // invokedLater
            }
        }
    }
}

From source file:eu.crisis_economics.abm.dashboard.GASearchHandler.java

public void addParameter(final ParameterOrGene parameterOrGene) throws ModelInformationException {
    if (chromosomeTree == null) {
        chromosomeTree = new DefaultTreeModel(new DefaultMutableTreeNode());
        genes = null;/*  w  ww. ja  v a  2  s.c  om*/
    }

    final DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(parameterOrGene);
    final DefaultMutableTreeNode root = (DefaultMutableTreeNode) chromosomeTree.getRoot();
    chromosomeTree.insertNodeInto(newNode, root, root.getChildCount());

    if (parameterOrGene.info instanceof SubmodelInfo) {
        final SubmodelInfo ssInfo = (SubmodelInfo) parameterOrGene.info;
        if (ssInfo.getActualType() != null)
            addSubmodelParameter(ssInfo, newNode);
    }

    for (final ModelListener listener : listeners)
        listener.parameterAdded();
}

From source file:eu.crisis_economics.abm.dashboard.GASearchHandler.java

public void removeAllParameters() {
    if (chromosomeTree == null)
        chromosomeTree = new DefaultTreeModel(new DefaultMutableTreeNode());
    else//from  w  ww.j av a 2 s .  c  o m
        chromosomeTree.setRoot(new DefaultMutableTreeNode());

    genes = null;

    for (final ModelListener listener : listeners)
        listener.parametersRemoved();
}

From source file:eu.crisis_economics.abm.dashboard.Page_Parameters.java

/** {@inheritDoc} 
 *///from  w ww  .  j a  v  a2  s  . c  o  m
@Override
public boolean onButtonPress(final Button button) {
    if (Button.NEXT.equals(button)) {
        ParameterTree parameterTree = null;
        if (tabbedPane.getSelectedIndex() == SINGLE_RUN_GUI_TABINDEX) {
            currentModelHandler.setIntelliMethodPlugin(null);
            parameterTree = new ParameterTree();
            final Set<ParameterInfo> invalids = new HashSet<ParameterInfo>();

            @SuppressWarnings("rawtypes")
            final Enumeration treeValues = parameterValueComponentTree.breadthFirstEnumeration();
            treeValues.nextElement(); // root element
            while (treeValues.hasMoreElements()) {
                final DefaultMutableTreeNode node = (DefaultMutableTreeNode) treeValues.nextElement();
                @SuppressWarnings("unchecked")
                final Pair<ParameterInfo, JComponent> userData = (Pair<ParameterInfo, JComponent>) node
                        .getUserObject();
                final ParameterInfo parameterInfo = userData.getFirst();
                final JComponent valueContainer = userData.getSecond();

                if (parameterInfo instanceof ISubmodelGUIInfo) {
                    final ISubmodelGUIInfo sgi = (ISubmodelGUIInfo) parameterInfo;
                    if (sgi.getParent() != null) {
                        final DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) node.getParent();
                        @SuppressWarnings("unchecked")
                        final Pair<ParameterInfo, JComponent> parentUserData = (Pair<ParameterInfo, JComponent>) parentNode
                                .getUserObject();
                        final SubmodelInfo parentParameterInfo = (SubmodelInfo) parentUserData.getFirst();
                        if (invalids.contains(parentParameterInfo)
                                || !classEquals(parentParameterInfo.getActualType(), sgi.getParentValue())) {
                            invalids.add(parameterInfo);
                            continue;
                        }
                    }
                }

                if (parameterInfo.isBoolean()) {
                    final JCheckBox checkBox = (JCheckBox) valueContainer;
                    parameterInfo.setValue(checkBox.isSelected());
                } else if (parameterInfo.isEnum()) {
                    final JComboBox comboBox = (JComboBox) valueContainer;
                    parameterInfo.setValue(comboBox.getSelectedItem());
                } else if (parameterInfo instanceof MasonChooserParameterInfo) {
                    final JComboBox comboBox = (JComboBox) valueContainer;
                    parameterInfo.setValue(comboBox.getSelectedIndex());
                } else if (parameterInfo instanceof SubmodelInfo) {
                    // we don't need the SubmodelInfo parameters anymore (all descendant parameters are in the tree too)
                    // but we need to check that an actual type is provided
                    final SubmodelInfo smi = (SubmodelInfo) parameterInfo;
                    final JComboBox comboBox = (JComboBox) ((JPanel) valueContainer).getComponent(0);
                    final ClassElement selected = (ClassElement) comboBox.getSelectedItem();
                    smi.setActualType(selected.clazz, selected.instance);

                    if (smi.getActualType() == null) {
                        final String errorMsg = "Please select a type from the dropdown list of "
                                + smi.getName().replaceAll("([A-Z])", " $1");
                        JOptionPane.showMessageDialog(wizard, new JLabel(errorMsg), "Error",
                                JOptionPane.ERROR_MESSAGE);
                        return false;
                    }

                    //continue;
                } else if (parameterInfo.isFile()) {
                    final JTextField textField = (JTextField) valueContainer.getComponent(0);
                    if (textField.getText().trim().isEmpty())
                        log.warn("Empty string was specified as file parameter "
                                + parameterInfo.getName().replaceAll("([A-Z])", " $1"));

                    final File file = new File(textField.getToolTipText());
                    if (!file.exists()) {
                        final String errorMsg = "Please specify an existing file parameter "
                                + parameterInfo.getName().replaceAll("([A-Z])", " $1");
                        JOptionPane.showMessageDialog(wizard, new JLabel(errorMsg), "Error",
                                JOptionPane.ERROR_MESSAGE);
                        return false;
                    }

                    parameterInfo.setValue(
                            ParameterInfo.getValue(textField.getToolTipText(), parameterInfo.getType()));
                } else if (parameterInfo instanceof MasonIntervalParameterInfo) {
                    final JTextField textField = (JTextField) valueContainer.getComponent(0);
                    parameterInfo.setValue(
                            ParameterInfo.getValue(textField.getText().trim(), parameterInfo.getType()));
                } else {
                    final JTextField textField = (JTextField) valueContainer;
                    parameterInfo
                            .setValue(ParameterInfo.getValue(textField.getText(), parameterInfo.getType()));
                    if ("String".equals(parameterInfo.getType()) && parameterInfo.getValue() == null)
                        parameterInfo.setValue(textField.getText().trim());
                }

                final AbstractParameterInfo<?> batchParameterInfo = InfoConverter
                        .parameterInfo2ParameterInfo(parameterInfo);
                parameterTree.addNode(batchParameterInfo);
            }

            dashboard.setOnLineCharts(onLineChartsCheckBox.isSelected());
            dashboard.setDisplayAdvancedCharts(advancedChartsCheckBox.isSelected());
        }

        if (tabbedPane.getSelectedIndex() == PARAMSWEEP_GUI_TABINDEX) {
            currentModelHandler.setIntelliMethodPlugin(null);
            boolean success = true;
            if (editedNode != null)
                success = modify();

            if (success) {
                String invalidInfoName = checkInfos(true);
                if (invalidInfoName != null) {
                    Utilities.userAlert(sweepPanel,
                            "Please select a type from the dropdown list of " + invalidInfoName);
                    return false;
                }

                invalidInfoName = checkInfos(false);
                if (invalidInfoName != null) {
                    Utilities.userAlert(sweepPanel, "Please specify a file for parameter " + invalidInfoName);
                    return false;
                }

                if (needWarning()) {
                    final int result = Utilities.askUser(sweepPanel, false, "Warning",
                            "There are two or more combination boxes that contains non-constant parameters."
                                    + " Parameters are unsynchronized:",
                            "simulation may exit before all parameter values are assigned.", " ",
                            "To explore all possible combinations you must use only one combination box.", " ",
                            "Do you want to run simulation with these parameter settings?");
                    if (result == 0) {
                        return false;
                    }
                }

                try {
                    parameterTree = createParameterTreeFromParamSweepGUI();

                    final ParameterNode rootNode = parameterTree.getRoot();
                    dumpParameterTree(rootNode);

                    //                  dashboard.setOnLineCharts(onLineChartsCheckBoxPSW.isSelected());
                } catch (final ModelInformationException e) {
                    JOptionPane.showMessageDialog(wizard, new JLabel(e.getMessage()),
                            "Error while creating runs", JOptionPane.ERROR_MESSAGE);
                    e.printStackTrace();
                    return false;
                }
            } else
                return false;
        }

        if (tabbedPane.getSelectedIndex() == GASEARCH_GUI_TABINDEX) {
            final IIntelliDynamicMethodPlugin gaPlugin = (IIntelliDynamicMethodPlugin) gaSearchHandler;
            currentModelHandler.setIntelliMethodPlugin(gaPlugin);
            boolean success = gaSearchPanel.closeActiveModification();

            if (success) {
                String invalidInfoName = checkInfosInGeneTree();
                if (invalidInfoName != null) {
                    Utilities.userAlert(sweepPanel,
                            "Please select a type from the dropdown list of " + invalidInfoName);
                    return false;
                }

                final String[] errors = gaSearchHandler.checkGAModel();
                if (errors != null) {
                    Utilities.userAlert(sweepPanel, (Object[]) errors);
                    return false;
                }

                final DefaultMutableTreeNode parameterTreeRootNode = new DefaultMutableTreeNode();
                final IIntelliContext ctx = new DashboardIntelliContext(parameterTreeRootNode,
                        gaSearchHandler.getChromosomeTree());
                gaPlugin.alterParameterTree(ctx);
                parameterTree = InfoConverter.node2ParameterTree(parameterTreeRootNode);
                dashboard.setOptimizationDirection(gaSearchHandler.getFitnessFunctionDirection());

            } else
                return false;
        }

        currentModelHandler.setParameters(parameterTree);
    }

    return true;
}

From source file:eu.crisis_economics.abm.dashboard.Page_Parameters.java

public void loadConfiguration(final Model model) {
    try {/*from w  w w  .  jav a  2 s  . c o m*/
        currentModelHandler = dashboard.getModelHandler();
        singleRunParametersPanel.removeAll();

        parameterValueComponentTree = new DefaultMutableTreeNode();
        possibleTypesCache.clear();
        batchParameters = currentModelHandler.getParameters();

        final ModelType runStrategy = model.getRunStrategy();

        if (ModelType.SINGLE == runStrategy)
            fillParameterValueComponentTree(model);

        final List<ParameterInfo> modelParameters = createAndDisplayAParameterPanel(batchParameters,
                "Model parameters", null, true, currentModelHandler);

        parametersScrollPane.setViewportView(singleRunParametersPanel);
        singleRunParametersPanel.revalidate();

        if (ModelType.SINGLE == runStrategy) {
            tabbedPane.setSelectedIndex(SINGLE_RUN_GUI_TABINDEX);
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    numberOfTurnsField.grabFocus();
                }
            });
        }

        // initialize paramsweep panel
        Collections.sort(modelParameters);
        enableDisableSettings(false);
        modifyButton.setEnabled(false);
        resetParamsweepGUI();

        if (ModelType.PARAMETER_SWEEP == runStrategy) {
            fillParameterSweepPage(model);
            tabbedPane.setSelectedIndex(PARAMSWEEP_GUI_TABINDEX);
        } else
            createDefaultParameterList(modelParameters);

        updateNumberOfRuns();

        // initialize the GA seach panel
        gaSearchHandler.init(currentModelHandler);
        gaSearchHandler.removeAllFitnessFunctions();
        final List<RecordableInfo> recordables = dashboard.getModelHandler().getRecorders().get(0)
                .getRecordables();
        for (final RecordableInfo recordableInfo : recordables) {
            if (gaSearchHandler.canBeFitnessFunction(recordableInfo))
                gaSearchHandler.addFitnessFunction(recordableInfo);
        }

        if (ModelType.GA == runStrategy) {
            gaSearchHandler.loadConfiguration(model, modelParameters);
            tabbedPane.setSelectedIndex(GASEARCH_GUI_TABINDEX);
            //            gaSearchPanel.setSelectedFitnessFunction(gaSearchHandler); this is handled by gaSearchPanel.reset()
        }

        gaSearchPanel.reset(gaSearchHandler);
    } catch (final ModelInformationException e) {
        JOptionPane.showMessageDialog(wizard, new JLabel(e.getMessage()),
                "Error while analyizing model and/or configuration file", JOptionPane.ERROR_MESSAGE);
        e.printStackTrace();
    } finally {
        ((CardLayout) container.getLayout()).show(container, PARAMETERS_PANEL_ID);
    }
}

From source file:eu.crisis_economics.abm.dashboard.Page_Parameters.java

/** {@inheritDoc} 
 *///from w  w  w.  ja v a2 s . co m
@Override
public void onPageChange(final boolean show) {
    if (show) {
        dashboard.getSaveConfigMenuItem().setEnabled(true);
        if (currentModelHandler == null || !currentModelHandler.equals(dashboard.getModelHandler())) {
            ((CardLayout) container.getLayout()).show(container, LOADING_MODEL_ID);

            SwingUtilities.invokeLater(new Runnable() {

                @Override
                public void run() {
                    try {
                        currentModelHandler = dashboard.getModelHandler();

                        breadcrumb.setRoot(
                                currentModelHandler.getModelClassSimpleName().replaceAll("([A-Z])", " $1"));
                        Style.apply(breadcrumb, dashboard.getCssStyle());
                        parameterValueComponentTree = new DefaultMutableTreeNode();
                        possibleTypesCache.clear();
                        singleRunParametersPanel.removeAll();
                        batchParameters = currentModelHandler.getParameters();
                        final List<ParameterInfo> modelParameters = createAndDisplayAParameterPanel(
                                batchParameters, "Model parameters", null, true, currentModelHandler);

                        //parametersScrollPane.setViewportView(singleRunParametersPanel);

                        singleRunParametersPanel.revalidate();

                        // initialize paramsweep panel
                        Collections.sort(modelParameters);
                        createDefaultParameterList(modelParameters);
                        enableDisableSettings(false);
                        modifyButton.setEnabled(false);
                        updateNumberOfRuns();
                        resetParamsweepGUI();

                        // initialize the GA seach panel
                        gaSearchHandler.init(currentModelHandler);
                        gaSearchPanel.reset(gaSearchHandler);
                        gaSearchHandler.removeAllFitnessFunctions();
                        final List<RecordableInfo> recordables = dashboard.getModelHandler().getRecorders()
                                .get(0).getRecordables();
                        for (final RecordableInfo recordableInfo : recordables) {
                            if (gaSearchHandler.canBeFitnessFunction(recordableInfo))
                                gaSearchHandler.addFitnessFunction(recordableInfo);
                        }

                        gaSearchHandler.removeAllParameters();
                        for (final ParameterInfo parameterInfo : modelParameters)
                            gaSearchHandler.addParameter(new ParameterOrGene(parameterInfo));
                    } catch (final ModelInformationException e) {
                        JOptionPane.showMessageDialog(wizard, new JLabel(e.getMessage()),
                                "Error while analyizing model", JOptionPane.ERROR_MESSAGE);
                        e.printStackTrace();
                    } finally {
                        ((CardLayout) container.getLayout()).show(container, PARAMETERS_PANEL_ID);
                    }
                }
            });
        }
    } else { // this should only run when moving onto Page_Run
    }

}