org.osate.aadl2.errormodel.emfta.handlers.FTADialog.java Source code

Java tutorial

Introduction

Here is the source code for org.osate.aadl2.errormodel.emfta.handlers.FTADialog.java

Source

/**
 * Copyright (c) 2015 Carnegie Mellon University.
 * All Rights Reserved.
 * 
 * THIS SOFTWARE IS PROVIDED "AS IS," WITH NO WARRANTIES WHATSOEVER.
 * CARNEGIE MELLON UNIVERSITY EXPRESSLY DISCLAIMS TO THE FULLEST 
 * EXTENT PERMITTEDBY LAW ALL EXPRESS, IMPLIED, AND STATUTORY 
 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES OF 
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND 
 * NON-INFRINGEMENT OF PROPRIETARY RIGHTS.
    
 * This Program is distributed under a BSD license.  
 * Please see license.txt file or permission@sei.cmu.edu for more
 * information. 
 * 
 * DM-0003411
 */

package org.osate.aadl2.errormodel.emfta.handlers;

import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;

public class FTADialog extends TitleAreaDialog {

    private String value;
    java.util.List<String> values;
    private Combo errorMode;
    private Button graphBox;
    private boolean graph;
    private Button optBox;
    private Button cutsetBox;
    private Button basictreeBox;
    private boolean optimize;
    private boolean mincutset;
    private boolean basictree;
    private String target = "";

    public FTADialog(Shell parentShell) {
        super(parentShell);
    }

    public void setValues(java.util.List<String> v) {
        values = v;
    }

    public void setTarget(String targetname) {
        target = targetname;
    }

    @Override
    public void create() {
        super.create();
        setTitle("Fault-Tree Analysis");
        setMessage("Select the Failure Mode to Analyze (error state, propagation)"
                + (target.isEmpty() ? "" : " for " + target), IMessageProvider.INFORMATION);
    }

    @Override
    protected Control createDialogArea(Composite parent) {
        Composite area = (Composite) super.createDialogArea(parent);
        Composite container = new Composite(area, SWT.NONE);
        GridLayout layout = new GridLayout(2, false);

        container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
        container.setLayout(layout);

        Label labelErrorMode = new Label(container, SWT.NONE);
        labelErrorMode.setText("Error-Mode");

        errorMode = new Combo(container, SWT.READ_ONLY | SWT.BORDER);
        String val[] = new String[values.size()];
        for (int i = 0; i < values.size(); i++) {
            val[i] = values.get(i);
        }
        errorMode.setItems(val);

        errorMode.select(0);
        // enable if we want to support showing shared events as fault graph instead of fault tree
        //      graphBox = new Button(container, SWT.CHECK);
        //      graphBox.setText("Fault graph");
        //      graphBox.setSelection(false);
        basictreeBox = new Button(container, SWT.RADIO);
        basictreeBox.setText("Basic Fault Tree (dependent events marked by *)");
        basictreeBox.setSelection(true);
        optBox = new Button(container, SWT.RADIO);
        optBox.setText("Transformed Fault Tree with Computed Probability");
        optBox.setSelection(false);
        cutsetBox = new Button(container, SWT.RADIO);
        cutsetBox.setText("Minimal Cut Sets");
        cutsetBox.setSelection(false);
        return area;
    }

    @Override
    protected boolean isResizable() {
        return true;
    }

    private void saveInput() {
        value = errorMode.getText();
        if (graphBox == null)
            graph = false;
        else
            optimize = graphBox.getSelection();
        if (optBox == null)
            optimize = true;
        else
            optimize = optBox.getSelection();
        if (cutsetBox == null)
            mincutset = false;
        else
            mincutset = cutsetBox.getSelection();
        if (basictreeBox == null)
            basictree = true;
        else
            basictree = basictreeBox.getSelection();
    }

    @Override
    protected void okPressed() {
        saveInput();
        super.okPressed();
    }

    public String getValue() {
        return value;
    }

    public boolean getSharedEventsAsGraph() {
        return graph;
    }

    public boolean getTransform() {
        return optimize;
    }

    public boolean getMinCutSet() {
        return mincutset;
    }

    public boolean getBasicTree() {
        return basictree;
    }

}