public FrmNetObject(java.awt.Frame parent, boolean modal, NetObject netObject) {
        super(parent, modal);

        initComponents();

        // center screen
        this.setLocationRelativeTo(parent);

        this.netObject = netObject;
        if (netObject instanceof Place) {
            netObjectName = "Place";
            currentTabIndex = 1;
            Place place = (Place) netObject;
            jList1.setVisible(true);

            DefaultListModel model = new DefaultListModel();
            Iterator it = place.getTokens().iterator();
            while (it.hasNext()) {
                Token token = (Token) it.next();
                model.addElement(token);
            }
            jList1.setModel(model);
            this.txtCapacity.setText("" + place.getCapacity());
            jTabbedPane1.setTitleAt(1, netObjectName + " Properties");

        } else if (netObject instanceof Transition) {
            netObjectName = "Transition";
            currentTabIndex = 2;
            Transition transition = (Transition) netObject;
            this.jTextArea1.setText(transition.getGuardText());
            jTabbedPane1.setTitleAt(2, netObjectName + " Properties");

        } else if (netObject instanceof InputArc) {
            netObjectName = "InputArc";
            currentTabIndex = 3;
            InputArc arc = (InputArc) netObject;
            this.jTextArea2.setText(arc.getEvaluateText());
            this.jTextArea3.setText(arc.getExecuteText());
            jTabbedPane1.setTitleAt(3, netObjectName + " Properties");

        } else if (netObject instanceof OutputArc) {
            netObjectName = "OutputArc";
            currentTabIndex = 4;
            OutputArc arc = (OutputArc) netObject;
            StringTokenizer expression = new StringTokenizer(arc.getExecuteText(), "@");
            String executeText = "";
            String time = "0";
            if (expression.countTokens() == 2) {
                executeText = expression.nextToken();
                time = expression.nextToken();
            } else {
                executeText = arc.getExecuteText();
            }
            this.jTextArea4.setText(executeText);
            this.txtTime.setText(time);
            jTabbedPane1.setTitleAt(4, netObjectName + " Properties");

        } else if (netObject instanceof PetriNet) {
            netObjectName = "PetriNet";
            currentTabIndex = 5;
            jTabbedPane1.setTitleAt(5, netObjectName + " Properties");
            PetriNet petriNet = (PetriNet) netObject;
            this.txtImports.setText(petriNet.getImportText());
            this.txtImplements.setText(petriNet.getImplementText());
            this.txtDeclarations.setText(petriNet.getDeclarationText());

        }

        enableTabPages();
        this.setTitle(netObjectName + " Properties");

        txtId.setText(netObject.getId());
        txtLabel.setText(netObject.getLabel());
        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(netObjectName + " Details"));
        jTabbedPane1.setTitleAt(0, "Common Properties");

        this.setVisible(true);
    }