Package com.nexirius.framework.dataviewer

Source Code of com.nexirius.framework.dataviewer.AskViewer

//{HEADER
/**
* This class is part of jnex 'Nexirius Application Framework for Java'
* Copyright (C) Nexirius GmbH, CH-4450 Sissach, Switzerland (www.nexirius.ch)
*
* <p>This library is free software; you can redistribute it and/or<br>
* modify it under the terms of the GNU Lesser General Public<br>
* License as published by the Free Software Foundation; either<br>
* version 2.1 of the License, or (at your option) any later version.</p>
*
* <p>This library is distributed in the hope that it will be useful,<br>
* but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU<br>
* Lesser General Public License for more details.</p>
*
* <p>You should have received a copy of the GNU Lesser General Public<br>
* License along with this library; if not, write to the Free Software<br>
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</p>
* </blockquote>
*
* <p>
* Nexirius GmbH, hereby disclaims all copyright interest in<br>
* the library jnex' 'Nexirius Application Framework for Java' written<br>
* by Marcel Baumann.</p>
*/
//}HEADER
package com.nexirius.framework.dataviewer;

import com.nexirius.framework.datamodel.AskModel;
import com.nexirius.framework.gadgets.ArrayLayout;
import com.nexirius.framework.gadgets.ArrayPanel;
import com.nexirius.util.StringVector;

import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;

/**
* this viewer is designed to show AskModel data
*
* @author Marcel Baumann
*/

public class AskViewer extends StructViewer {



    public static final String viewerName = "AskViewer";
    JButton yes;
    JButton no;
    JButton cancel;

    public AskViewer(AskModel model) {
        super(model);
    }

    public AskModel getAskModel() {
        return (AskModel) getDataModel();
    }

    public String getViewerName() {
        return viewerName;
    }

    public void defineDefaultButton(JRootPane rootPane) {
        if (yes == null) {
            create();
        }

        JButton defaultButton = getAskModel().getDefaultIsYes() ? yes : no;

        defaultButton.setDefaultCapable(true);
        defaultButton.requestFocus();
        rootPane.setDefaultButton(defaultButton);
    }

    public void create() {
        if (getLayout() == null) {
            JPanel panel = new JPanel(new BorderLayout());

            setJComponent(panel);

            String text = "ERROR";

            try {
                text = getAskModel().getQuestionModel().getText();
            } catch (Exception ex) {
                ex.printStackTrace();
            }

            text = factory.getText(text);

            StringVector sv = new StringVector(text, "\n");
            JComponent q;
            Icon icon = factory.getIcon("QUESTION");

            if (sv.size() > 1) {
                JPanel qpanel = new ArrayPanel(false, ArrayLayout.FULL_SIZE);
                String s;

                if (icon != null) {
                    qpanel.add(new JLabel(icon));
                }

                for (s = sv.firstItem(); s != null; s = sv.nextItem()) {
                    qpanel.add(new JLabel(s));
                }

                q = qpanel;
            } else {
                JLabel label = new JLabel(text);

                if (icon != null) {
                    label.setIcon(icon);
                }

                q = label;
            }

            q.setBorder(new EmptyBorder(40, 40, 40, 40));
            panel.add(q, BorderLayout.CENTER);

            try {
                JPanel buttonContainer = new JPanel();

                yes = (JButton) factory.createDefaultViewer(getAskModel().getYesCommand()).getJComponent();
                no = (JButton) factory.createDefaultViewer(getAskModel().getNoCommand()).getJComponent();

                JButton buttons[];

                if (getAskModel().getHasCancel()) {
                    buttons = new JButton[3];
                    cancel = (JButton) factory.createDefaultViewer(getAskModel().getCancelCommand()).getJComponent();
                    buttons[2] = cancel;
                } else {
                    buttons = new JButton[2];
                }

                if (getAskModel().getDefaultIsYes()) {
                    buttons[0] = yes;
                    buttons[1] = no;
                } else {
                    buttons[0] = no;
                    buttons[1] = yes;
                }

                factory.arrangeButtons(buttons, buttonContainer);
                panel.add(BorderLayout.SOUTH, buttonContainer);
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        } else {
            super.create();
        }
    }

    public void update() {
        if (getLayout() == null) {
        } else {
            super.update();
        }
    }
}
TOP

Related Classes of com.nexirius.framework.dataviewer.AskViewer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.