/*
Copyright 2003-2012 Dmitry Barashev, GanttProject Team
This file is part of GanttProject, an opensource project management tool.
GanttProject is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GanttProject is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GanttProject. If not, see <http://www.gnu.org/licenses/>.
*/
package net.sourceforge.ganttproject.gui;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import net.sourceforge.ganttproject.language.GanttLanguage;
public class GanttDialogInfo extends JDialog {
/** An error message */
public static final int ERROR = 0;
/** A warning message */
public static final int WARNING = 1;
/** An info message */
public static final int INFO = 2;
/** A question message */
public static final int QUESTION = 3;
/** Ok result */
public static final int YES = 0;
/** Cancel result */
public static final int NO = 1;
/** Undo result */
public static final int CANCEL = 2;
/** The result of the dialog box */
public int res = 0;
/** only ok button */
public static int YES_OPTION = 0;
/** ok and cancel button */
public static int YES_NO_OPTION = 1;
/** ok and cancel button */
public static int YES_NO_CANCEL_OPTION = 2;
public GanttDialogInfo(Frame parent, int msgtype, int button, String message, String title) {
super(parent, title, true);
GanttLanguage language = GanttLanguage.getInstance();
res = button;
Box b1 = Box.createVerticalBox();
switch (msgtype) {
case ERROR:
b1.add(new JLabel(new ImageIcon(getClass().getResource("/icons/error.png"))));
break;
case WARNING:
b1.add(new JLabel(new ImageIcon(getClass().getResource("/icons/warning.png"))));
case INFO:
b1.add(new JLabel(new ImageIcon(getClass().getResource("/icons/info.png"))));
case QUESTION:
b1.add(new JLabel(new ImageIcon(getClass().getResource("/icons/question.png"))));
}
getContentPane().add(b1, "West");
Box b2 = Box.createVerticalBox();
JTextArea textArea = new JTextArea(message);
textArea.setEditable(false);
textArea.setBackground(new JLabel().getBackground());
b2.add(textArea);
getContentPane().add(b2, "Center");
JPanel p = new JPanel();
// YES/OK BUTTON
JButton yes = new JButton((button == 0) ? language.getText("ok") : language.getText("yes"));
getRootPane().setDefaultButton(yes);
p.add(yes);
yes.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
setVisible(false);
dispose();
res = YES;
}
});
if (button > 0) {
// NO BUTTON
JButton no = new JButton(language.getText("no"));
p.add(no);
no.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
setVisible(false);
dispose();
res = NO;
}
});
if (button > 1) {
// CANCEL BUTTON
JButton cancel = new JButton(language.getText("cancel"));
p.add(cancel);
cancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
setVisible(false);
dispose();
res = CANCEL;
}
});
}
}
getContentPane().add(p, BorderLayout.SOUTH);
pack();
setResizable(false);
DialogAligner.center(this, getParent());
applyComponentOrientation(language.getComponentOrientation());
}
}