/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following definitions.
- OperationPanel
- recycleCheckBoxItemStateChanged
- undoButtonActionPerformed
- setDialog
- getDialog
- setUndoEnabled
- addActionListener
- removeActionListener
package jp.ac.nime.computer.grpsimulator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
/** OperationPanelクラスは、画像処理に対する各種パラメータやUNDOなどの
* オペレーションを行うためのJPanelの派生クラスです
* @author igarashi
* @version 1.0.0
*/
public class OperationPanel extends JPanel
{
private ActionListener actionListener_;
private JPanel dlgPanel_;
private JButton undoButton_;
private JCheckBox recycleCheckBox_;
/** OperationFrameを生成します
*/
public OperationPanel() {
setLayout(new BorderLayout());
JPanel undoPanel = new JPanel(); // undoパネル(undoボタンとrecycleチェックボックスが乗る)
undoPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 5));
undoButton_ = new JButton(); // undoボタン作成
undoButton_.setText(GrpSim.res_.getString("ControlUndo"));
undoButton_.setToolTipText(GrpSim.res_.getString("ControlUndoTooltip"));
undoButton_.setEnabled(false);
undoButton_.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
undoButtonActionPerformed(evt);
}
});
undoPanel.add(undoButton_); // undoパネルにundoボタンを追加
recycleCheckBox_ = new JCheckBox(); // recycleチェックボックス作成
recycleCheckBox_.setText(GrpSim.res_.getString("ControlRecycle"));
recycleCheckBox_.setToolTipText(GrpSim.res_.getString("ControlRecycleTooltip"));
recycleCheckBox_.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent evt) {
recycleCheckBoxItemStateChanged(evt);
}
});
undoPanel.add(recycleCheckBox_); // undoパネルにrecycleチェックボックスを追加
add(undoPanel, BorderLayout.NORTH); // 北側にundoパネルを配置
dlgPanel_ = new JPanel();
add(dlgPanel_, BorderLayout.CENTER); // 中央にダイアログを乗せるパネルを配置
}
private void recycleCheckBoxItemStateChanged(ItemEvent evt) {
actionListener_.actionPerformed(
new ActionEvent(
evt.getSource(),
ActionEvent.ACTION_PERFORMED,
(evt.getStateChange() == ItemEvent.SELECTED) ? "RecycleOn" : "RecycleOff"
)
);
}
private void undoButtonActionPerformed(ActionEvent evt) {
actionListener_.actionPerformed(
new ActionEvent(evt.getSource(),ActionEvent.ACTION_PERFORMED,"Undo")
);
}
/** 画像処理パラメータを指示するダイアログを格納します
* 直前まで表示されていダイアログは破棄されます
* @param dlg 表示したいダイアログのオブジェクト
*/
public void setDialog(JPanel dlg) {
dlgPanel_.removeAll();
if (dlg != null) dlgPanel_.add(dlg);
}
public JPanel getDialog() {
for (int i = 0; i < dlgPanel_.getComponentCount(); i ++) {
Component com = dlgPanel_.getComponent(i);
if (com instanceof JPanel) {
return (JPanel) com;
}
}
return null;
}
/** UNDOボタンの有効/無効を切り替えます
* @param bEnabled trueを指定するとUndoボタンが有効になります
*/
public void setUndoEnabled( boolean bEnabled ) {
undoButton_.setEnabled(bEnabled);
}
public void addActionListener(ActionListener listener) {
actionListener_ = AWTEventMulticaster.add(actionListener_, listener);
}
public void removeActionListener(ActionListener listener) {
actionListener_ = AWTEventMulticaster.remove(actionListener_, listener);
}
}