/*
* File : ActivityEditorMsgPanel.java
* Created : 10-jun-2002 09:59
* By : fbusquets
*
* JClic - Authoring and playing system for educational activities
*
* Copyright (C) 2000 - 2005 Francesc Busquets & Departament
* d'Educacio de la Generalitat de Catalunya
*
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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 (see the LICENSE file).
*/
package edu.xtec.jclic;
import edu.xtec.jclic.boxes.ActiveBoxContent;
import edu.xtec.jclic.boxes.ActiveBoxContentEditor;
import edu.xtec.jclic.boxes.ActiveBoxPreviewPanel;
import edu.xtec.jclic.boxes.BoxBase;
import java.util.EventObject;
import javax.swing.JCheckBox;
/**
*
* @author Francesc Busquets (fbusquets@xtec.cat)
* @version 13.08.29
*/
public class ActivityEditorMsgPanel extends ActivityEditorInternalPanel {
int NUM_MSG=3;
ActiveBoxPreviewPanel[] abpp=new ActiveBoxPreviewPanel[NUM_MSG];
JCheckBox[] abppChk=new JCheckBox[NUM_MSG];
/** Creates new form MenuEditorPanel */
public ActivityEditorMsgPanel(ActivityEditorPanel parent) {
super(parent);
initComponents();
//abpp[0]=(ActiveBoxPreviewPanel)prevMsgPanel;
//abppChk[0]=prevMsgChk;
abpp[0]=(ActiveBoxPreviewPanel)initialMsgPanel;
abppChk[0]=initialMsgChk;
abpp[1]=(ActiveBoxPreviewPanel)finalMsgPanel;
abppChk[1]=finalMsgChk;
abpp[2]=(ActiveBoxPreviewPanel)errorMsgPanel;
abppChk[2]=errorMsgChk;
setEnabled(false);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
java.awt.GridBagConstraints gridBagConstraints;
javax.swing.JLabel spacer;
initialMsgChk = new javax.swing.JCheckBox();
initialMsgPanel = new ActiveBoxPreviewPanel(null);
finalMsgChk = new javax.swing.JCheckBox();
finalMsgPanel = new ActiveBoxPreviewPanel(null);
errorMsgChk = new javax.swing.JCheckBox();
errorMsgPanel = new ActiveBoxPreviewPanel(null);
spacer = new javax.swing.JLabel();
setLayout(new java.awt.GridBagLayout());
initialMsgChk.setToolTipText(options.getMsg("edit_act_msg_initial_tooltip"));
initialMsgChk.setText(options.getMsg("edit_act_msg_initial"));
initialMsgChk.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
add(initialMsgChk, gridBagConstraints);
initialMsgPanel.setToolTipText(options.getMsg("edit_act_msg_initial_tooltip"));
initialMsgPanel.setPreferredSize(new java.awt.Dimension(500, 40));
initialMsgPanel.setMinimumSize(new java.awt.Dimension(200, 40));
initialMsgPanel.setMaximumSize(new java.awt.Dimension(32767, 40));
initialMsgPanel.addMouseListener(getMouseClickListener());
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
add(initialMsgPanel, gridBagConstraints);
finalMsgChk.setToolTipText(options.getMsg("edit_act_msg_final_tooltip"));
finalMsgChk.setText(options.getMsg("edit_act_msg_final"));
finalMsgChk.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
add(finalMsgChk, gridBagConstraints);
finalMsgPanel.setToolTipText(options.getMsg("edit_act_msg_final_tooltip"));
finalMsgPanel.setPreferredSize(new java.awt.Dimension(500, 40));
finalMsgPanel.setMinimumSize(new java.awt.Dimension(200, 40));
finalMsgPanel.setMaximumSize(new java.awt.Dimension(32767, 40));
finalMsgPanel.addMouseListener(getMouseClickListener());
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
add(finalMsgPanel, gridBagConstraints);
errorMsgChk.setToolTipText(options.getMsg("edit_act_msg_error_tooltip"));
errorMsgChk.setText(options.getMsg("edit_act_msg_error"));
errorMsgChk.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
add(errorMsgChk, gridBagConstraints);
errorMsgPanel.setToolTipText(options.getMsg("edit_act_msg_error_tooltip"));
errorMsgPanel.setPreferredSize(new java.awt.Dimension(500, 40));
errorMsgPanel.setMinimumSize(new java.awt.Dimension(200, 40));
errorMsgPanel.setMaximumSize(new java.awt.Dimension(32767, 40));
errorMsgPanel.addMouseListener(getMouseClickListener());
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
add(errorMsgPanel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL;
gridBagConstraints.weighty = 1.0;
add(spacer, gridBagConstraints);
}//GEN-END:initComponents
@Override
public void setEnabled(boolean enabled){
super.setEnabled(enabled);
for(int i=0; i<NUM_MSG; i++){
abppChk[i].setEnabled(enabled);
abpp[i].setEnabled(enabled);
}
}
@Override
public boolean eventPerformed(EventObject ev){
Object src=(ev==null ? null : ev.getSource());
boolean result=(src!=null && isEnabled());
if(result){
for(int i=0; i<NUM_MSG; i++){
if(src==abppChk[i]){
abpp[i].getActiveBox().setInactive(!abppChk[i].isSelected());
break;
}
else if(src==abpp[i]){
ActiveBoxContent abc=ActiveBoxContentEditor.getActiveBoxContent(abpp[i].getActiveBoxContent(), this, options, getActivityEditor().getMediaBagEditor(), abpp[i].getActiveBox());
if(abc!=null){
if(!abppChk[i].isSelected()){
abppChk[i].setSelected(true);
abpp[i].getActiveBox().setInactive(false);
}
abpp[i].setActiveBoxContent(abc);
}
else
result=false;
}
}
}
return result;
}
/*
public void clear() {
for(int i=0; i<NUM_MSG; i++){
abppChk[i].setSelected(false);
ActiveBoxContent abc=new ActiveBoxContent();
abc.setBoxBase(new BoxBase());
abpp[i].setActiveBoxContent(abc);
abpp[i].getActiveBox().setInactive(true);
}
}
*/
public void fillData() {
Activity act=getActivity();
//if(act!=null){
for(int i=0; i<NUM_MSG; i++){
ActiveBoxContent abc = act==null ? null : act.messages[Activity.MAIN+i];
abppChk[i].setSelected(abc!=null);
if(abc!=null)
abpp[i].setActiveBoxContent(abc);
else{
ActiveBoxContent nabc=new ActiveBoxContent();
nabc.setBoxBase(new BoxBase());
abpp[i].setActiveBoxContent(nabc);
}
abpp[i].getActiveBox().setInactive(abc==null);
}
//}
}
private ActiveBoxContent getActiveBoxContent(int n){
return abppChk[n].isSelected() ? abpp[n].getActiveBoxContent() : null;
}
public void saveData(){
Activity act=getActivity();
if(act!=null)
for(int i=0; i<NUM_MSG; i++)
act.messages[Activity.MAIN+i]=getActiveBoxContent(i);
}
/*
public boolean dataChanged(){
boolean result=false;
Activity act=getActivity();
if(act!=null)
for(int i=0; !result && i<NUM_MSG; i++)
result=!Utils.compareTrimStringsIgnoreCase
(act.messages[Activity.MAIN+i]
, getActiveBoxContent(i));
return result;
}
*/
protected javax.swing.Icon getIcon(){
return edu.xtec.util.ResourceManager.getImageIcon("icons/messages.gif");
}
protected String getTitle() {
return options.getMsg("edit_act_panels_messages");
}
protected String getTooltip() {
return options.getMsg("edit_act_panels_messages_tooltip");
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JCheckBox errorMsgChk;
private javax.swing.JPanel errorMsgPanel;
private javax.swing.JCheckBox finalMsgChk;
private javax.swing.JPanel finalMsgPanel;
private javax.swing.JCheckBox initialMsgChk;
private javax.swing.JPanel initialMsgPanel;
// End of variables declaration//GEN-END:variables
}