msi.gama.gui.views.ExperimentParametersView.java Source code

Java tutorial

Introduction

Here is the source code for msi.gama.gui.views.ExperimentParametersView.java

Source

/*********************************************************************************************
 * 
 * 
 * 'ExperimentParametersView.java', in plugin 'msi.gama.application', is part of the source code of the
 * GAMA modeling and simulation platform.
 * (c) 2007-2014 UMI 209 UMMISCO IRD/UPMC & Partners
 * 
 * Visit https://code.google.com/p/gama-platform/ for license information and developers contact.
 * 
 * 
 **********************************************************************************************/
package msi.gama.gui.views;

import java.util.Collection;
import msi.gama.common.util.GuiUtils;
import msi.gama.gui.swt.*;
import msi.gama.gui.swt.controls.GamaToolbar2;
import msi.gama.kernel.experiment.*;
import msi.gama.runtime.*;
import msi.gaml.compilation.GamaHelper;
import msi.gaml.statements.*;
import org.apache.commons.lang.StringUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;

public class ExperimentParametersView extends AttributesEditorsView<String> {

    public static final String ID = GuiUtils.PARAMETER_VIEW_ID;
    public final static int REVERT = 0;
    private IExperimentPlan experiment;

    @Override
    public void ownCreatePartControl(final Composite view) {
        final Composite intermediate = new Composite(view, SWT.NONE);
        intermediate.setBackground(view.getBackground());
        final GridLayout parentLayout = new GridLayout(1, false);
        parentLayout.marginWidth = 0;
        parentLayout.marginHeight = 0;
        parentLayout.verticalSpacing = 5;
        intermediate.setLayout(parentLayout);
        view.pack();
        view.layout();
        parent = intermediate;
    }

    public void addItem(final IExperimentPlan exp) {
        if (exp != null /* && exp != experiment */) {
            experiment = exp;
            reset();
            editors = (EditorsList<String>) exp.getParametersEditors();
            if (editors == null && exp.getUserCommands().isEmpty()) {
                return;
            }
            displayItems();
        } else {
            experiment = null;
        }
    }

    // @Override
    // public/* final */void createPartControl(final Composite composite) {
    // super.createPartControl(composite);
    // }

    @Override
    public void displayItems() {
        super.displayItems();
        this.displayCommands();
    }

    protected void displayCommands() {
        final Collection<UserCommandStatement> userCommands = experiment.getUserCommands();

        String expInfo = "Model " + experiment.getModel().getDescription().getTitle() + " / "
                + StringUtils.capitalize(experiment.getDescription().getTitle());
        toolbar.status((Image) null, expInfo, IGamaColors.NEUTRAL, SWT.LEFT);
        toolbar.sep(2, SWT.LEFT);
        for (final IStatement command : userCommands) {
            ToolItem f = toolbar.button(IGamaColors.BLUE, command.getName(), new SelectionAdapter() {

                @Override
                public void widgetSelected(final SelectionEvent e) {
                    GAMA.getSimulation().getScheduler().executeOneAction(new GamaHelper() {

                        @Override
                        public Object run(final IScope scope) {
                            final Object result = command.executeOn(scope);
                            experiment.getSimulationOutputs().forceUpdateOutputs();
                            return result;
                        }

                    });
                }

            }, SWT.LEFT);
            toolbar.sep(2, SWT.LEFT);
        }
        toolbar.refresh(true);

    }

    @Override
    public void createToolItems(final GamaToolbar2 tb) {
        super.createToolItems(tb);
        tb.button(IGamaIcons.ACTION_REVERT.getCode(), "Revert parameter values",
                "Revert parameters to their initial values", new SelectionAdapter() {

                    @Override
                    public void widgetSelected(final SelectionEvent e) {
                        EditorsList eds = (EditorsList) GAMA.getExperiment().getParametersEditors();
                        if (eds != null) {
                            eds.revertToDefaultValue();
                        }
                    }

                }, SWT.RIGHT);
    }

    @Override
    public boolean addItem(final String object) {
        createItem(parent, object, true);
        return true;
    }

    public IExperimentPlan getExperiment() {
        return experiment;
    }

    @Override
    public void stopDisplayingTooltips() {
        displayCommands();
    }

    @Override
    protected GamaUIJob createUpdateJob() {
        return null;
    }

}