All Downloads are FREE. Search and download functionalities are using the official Maven repository.

se.cambio.openehr.view.dialogs.DialogLongMessageNotice Maven / Gradle / Ivy

The newest version!
package se.cambio.openehr.view.dialogs;

import se.cambio.openehr.util.OpenEHRImageUtil;

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


public class DialogLongMessageNotice extends DialogEditor {

    private static final long serialVersionUID = 1L;

    public static enum MessageType {
        NORMAL,
        WARNING,
        WARNING_WITH_CANCEL,
        ERROR
    }

    private JPanel panelMsg = null;
    private JPanel panelException = null;
    private JPanel panelButtons = null;
    private String msg = null;
    private String longMsg = null;
    private MessageType type = null;

    public DialogLongMessageNotice(Window owner, String title, String msg, String longMsg, MessageType type) {
        super(owner, title, new Dimension(400, 400), true, true);
        this.msg = msg;
        this.longMsg = longMsg;
        this.type = type;
        init();
    }

    private void init() {
        getJPanel().setLayout(new BorderLayout());
        getJPanel().add(getPanelMsg(), BorderLayout.NORTH);
        getJPanel().add(getPanelException(), BorderLayout.CENTER);
        getJPanel().add(getPanelButtons(), BorderLayout.SOUTH);
    }


    private JPanel getPanelMsg() {
        if (panelMsg == null) {
            panelMsg = new JPanel(new BorderLayout());
            JPanel aux = new JPanel();
            aux.add(new JLabel(getImageIcon()));
            panelMsg.add(aux, BorderLayout.WEST);
            JTextPane textPane = new JTextPane();
            textPane.setText(msg);
            textPane.setFont(textPane.getFont().deriveFont(Font.BOLD));
            textPane.setBackground(null);
            textPane.setEditable(false);
            panelMsg.add(textPane, BorderLayout.CENTER);
        }
        return panelMsg;
    }

    private JPanel getPanelException() {
        if (panelException == null) {
            panelException = new JPanel();
            panelException = new JPanel(new BorderLayout());
            JTextPane textPane = new JTextPane();
            textPane.setText(longMsg);
            textPane.setEditable(false);
            JPanel noWrapPanel = new JPanel(new BorderLayout());
            noWrapPanel.add(textPane);
            textPane.setBackground(null);
            JScrollPane scrollPane = new JScrollPane();
            scrollPane.setViewportView(noWrapPanel);
            panelException.add(scrollPane);
        }
        return panelException;
    }

    private JPanel getPanelButtons() {
        if (panelButtons == null) {
            panelButtons = new JPanel(new FlowLayout(FlowLayout.CENTER));
            panelButtons.add(getAcceptButton());
            if (MessageType.WARNING_WITH_CANCEL.equals(type)) {
                panelButtons.add(getCancelButton());
            }
        }
        return panelButtons;
    }

    private ImageIcon getImageIcon() {
        if (MessageType.ERROR.equals(type)) {
            return OpenEHRImageUtil.CANCEL_ICON;
        } else if (MessageType.WARNING.equals(type) || MessageType.WARNING_WITH_CANCEL.equals(type)) {
            return OpenEHRImageUtil.WARNING_ICON;
        } else {
            return OpenEHRImageUtil.EMPTY_ICON;
        }
    }
}
/*
 *  ***** BEGIN LICENSE BLOCK *****
 *  Version: MPL 2.0/GPL 2.0/LGPL 2.1
 *
 *  The contents of this file are subject to the Mozilla Public License Version
 *  2.0 (the 'License'); you may not use this file except in compliance with
 *  the License. You may obtain a copy of the License at
 *  http://www.mozilla.org/MPL/
 *
 *  Software distributed under the License is distributed on an 'AS IS' basis,
 *  WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 *  for the specific language governing rights and limitations under the
 *  License.
 *
 *
 *  The Initial Developers of the Original Code are Iago Corbal and Rong Chen.
 *  Portions created by the Initial Developer are Copyright (C) 2012-2013
 *  the Initial Developer. All Rights Reserved.
 *
 *  Contributor(s):
 *
 * Software distributed under the License is distributed on an 'AS IS' basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 *  ***** END LICENSE BLOCK *****
 */




© 2015 - 2024 Weber Informatics LLC | Privacy Policy