/*
* File : ActiveBagContentControlPanel.java
* Created : 01-apr-2003 10:38
* 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.boxes;
import edu.xtec.jclic.Activity;
import edu.xtec.jclic.beans.*;
import edu.xtec.jclic.shapers.Shaper;
import edu.xtec.util.Options;
import edu.xtec.util.TripleString;
import java.awt.Dimension;
import java.util.EventObject;
import javax.swing.ComboBoxModel;
/**
*
* @author Francesc Busquets (fbusquets@xtec.cat)
* @version 13.09.09
*/
public class ActiveBagContentControlPanel extends edu.xtec.util.CtrlPanel {
ActiveBagContentEditor parent;
ActiveBagContent abc, altAbc;
ActiveBagContentControlPanel syncPanel;
boolean altNull;
Options options;
int index;
int altIndex;
int visualIndex;
boolean simpleMode;
/** Creates new form ActiveBagContentControlPanel */
public ActiveBagContentControlPanel(ActiveBagContentEditor parent, int index, int altIndex, int visualIndex, boolean simpleMode){
setInitializing(true);
this.simpleMode=simpleMode;
this.parent=parent;
options=parent.getOptions();
this.index=index;
this.altIndex=altIndex;
this.visualIndex=visualIndex;
altNull=altIndex>=0;
initComponents();
if(altIndex<0 || simpleMode){
altChk.setEnabled(false);
altChk.setVisible(false);
toggleAlt.setEnabled(false);
toggleAlt.setVisible(false);
}
if(simpleMode){
shaperLb.setVisible(false);
shaperCombo.setVisible(false);
shaperEditBtn.setVisible(false);
scrambleChk.setVisible(false);
nRowsLb.setVisible(false);
nRowsEdit.setVisible(false);
nColsLb.setVisible(false);
nColsEdit.setVisible(false);
imgLb.setVisible(false);
imgButton.setVisible(false);
}
setInitializing(false);
}
protected void setSyncpanel(ActiveBagContentControlPanel syncPanel){
this.syncPanel=syncPanel;
}
/** 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.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
javax.swing.JLabel spacer3 = new javax.swing.JLabel();
shaperLb = new javax.swing.JLabel();
shaperCombo = new javax.swing.JComboBox(edu.xtec.jclic.shapers.Shaper.getSystemShaperList(options).toArray());
shaperEditBtn = new javax.swing.JButton();
scrambleChk = new javax.swing.JCheckBox();
altChk = new javax.swing.JCheckBox();
toggleAlt = new javax.swing.JToggleButton();
javax.swing.JLabel spacer2 = new javax.swing.JLabel();
nRowsLb = new javax.swing.JLabel();
nRowsEdit = new edu.xtec.jclic.beans.SmallIntEditor();
nColsLb = new javax.swing.JLabel();
nColsEdit = new edu.xtec.jclic.beans.SmallIntEditor();
imgLb = new javax.swing.JLabel();
imgButton = new edu.xtec.jclic.beans.ImgButton();
imgButton.setOptions(options);
javax.swing.JLabel widthLb = new javax.swing.JLabel();
widthEdit = new edu.xtec.jclic.beans.SmallIntEditor();
javax.swing.JLabel heightLb = new javax.swing.JLabel();
heightEdit = new edu.xtec.jclic.beans.SmallIntEditor();
javax.swing.JLabel styleLb = new javax.swing.JLabel();
boxBaseButton = new edu.xtec.jclic.beans.BoxBaseButton();
boxBaseButton.setOptions(options);
borderChk = new javax.swing.JCheckBox();
setLayout(new java.awt.GridBagLayout());
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL;
gridBagConstraints.weighty = 1.0;
add(spacer3, gridBagConstraints);
shaperLb.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/select_shaper.gif"))); // NOI18N
shaperLb.setLabelFor(shaperCombo);
shaperLb.setText(":");
shaperLb.setIconTextGap(0);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(shaperLb, gridBagConstraints);
shaperCombo.setToolTipText(options.getMsg("edit_act_shaper_tooltip"));
shaperCombo.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(shaperCombo, gridBagConstraints);
shaperEditBtn.setText("...");
shaperEditBtn.setMargin(new java.awt.Insets(0, 4, 0, 4));
shaperEditBtn.setEnabled(false);
shaperEditBtn.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(shaperEditBtn, gridBagConstraints);
scrambleChk.setText(options.getMsg("edit_act_scramble"));
scrambleChk.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(scrambleChk, gridBagConstraints);
altChk.setToolTipText(options.getMsg("edit_act_alt_tooltip"));
altChk.setText(options.getMsg("edit_act_alt"));
altChk.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
altChk.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(altChk, gridBagConstraints);
toggleAlt.setToolTipText(options.getMsg("edit_act_alt_toggle_tooltip"));
toggleAlt.setText(options.getMsg("edit_act_alt_toggle"));
toggleAlt.setMargin(new java.awt.Insets(0, 4, 0, 4));
toggleAlt.setEnabled(false);
toggleAlt.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(toggleAlt, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
add(spacer2, gridBagConstraints);
nRowsLb.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/adjust_rows.gif"))); // NOI18N
nRowsLb.setLabelFor(nRowsEdit);
nRowsLb.setText(":");
nRowsLb.setIconTextGap(0);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(nRowsLb, gridBagConstraints);
nRowsEdit.setToolTipText(options.getMsg("edit_act_num_rows_tooltip"));
nRowsEdit.setMax(30);
nRowsEdit.setMin(1);
nRowsEdit.addPropertyChangeListener(SmallIntEditor.PROP_VALUE, this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(nRowsEdit, gridBagConstraints);
nColsLb.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/adjust_cols.gif"))); // NOI18N
nColsLb.setLabelFor(nColsEdit);
nColsLb.setText(":");
nColsLb.setIconTextGap(0);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(nColsLb, gridBagConstraints);
nColsEdit.setToolTipText(options.getMsg("edit_act_num_cols_tooltip"));
nColsEdit.setMax(30);
nColsEdit.setMin(1);
nColsEdit.addPropertyChangeListener(SmallIntEditor.PROP_VALUE, this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(nColsEdit, gridBagConstraints);
imgLb.setLabelFor(imgButton);
imgLb.setText(options.getMsg("edit_act_image"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(imgLb, gridBagConstraints);
imgButton.setToolTipText(options.getMsg("edit_act_image_tooltip"));
imgButton.addPropertyChangeListener(ImgButton.PROP_IMG_NAME, this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(imgButton, gridBagConstraints);
widthLb.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/adjust_width.gif"))); // NOI18N
widthLb.setLabelFor(widthEdit);
widthLb.setText(":");
widthLb.setIconTextGap(0);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(widthLb, gridBagConstraints);
widthEdit.setToolTipText(options.getMsg("edit_act_cell_width_tooltip"));
widthEdit.setMax(999);
widthEdit.setMin(edu.xtec.jclic.Constants.MIN_CELL_SIZE);
widthEdit.addPropertyChangeListener(SmallIntEditor.PROP_VALUE, this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(widthEdit, gridBagConstraints);
heightLb.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/adjust_height.gif"))); // NOI18N
heightLb.setLabelFor(heightEdit);
heightLb.setText(":");
heightLb.setIconTextGap(0);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(heightLb, gridBagConstraints);
heightEdit.setToolTipText(options.getMsg("edit_act_cell_height_tooltip"));
heightEdit.setMax(999);
heightEdit.setMin(edu.xtec.jclic.Constants.MIN_CELL_SIZE);
heightEdit.addPropertyChangeListener(SmallIntEditor.PROP_VALUE, this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(heightEdit, gridBagConstraints);
styleLb.setLabelFor(boxBaseButton);
styleLb.setText(options.getMsg("edit_act_style"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(styleLb, gridBagConstraints);
boxBaseButton.setToolTipText(options.getMsg("edit_style_tooltip"));
boxBaseButton.addPropertyChangeListener(BoxBaseButton.PROP_BOX_BASE, this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(boxBaseButton, gridBagConstraints);
borderChk.setText(options.getMsg("edit_act_border"));
borderChk.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(borderChk, gridBagConstraints);
}// </editor-fold>//GEN-END:initComponents
@Override
public boolean eventPerformed(EventObject ev){
boolean result=true;
if(abc!=null && ev!=null && ev.getSource()!=null){
Object src=ev.getSource();
if(src==altChk)
altChkActionPerformed();
else if(src==toggleAlt){
toggleAltActionPerformed();
result=false;
}
else if(src==shaperCombo){
shaperComboActionPerformed();
}
else if(src==shaperEditBtn){
result=shaperEditBtnActionPerformed();
}
else if(src==boxBaseButton){
boxBaseButtonActionPerformed();
}
else if(src==imgButton){
imgButtonActionPerformed();
}
else if(src==borderChk){
borderChkActionPerformed();
}
if(src==widthEdit || src==heightEdit){
parent.abcpp.doResize(visualIndex, widthEdit.getValue(), heightEdit.getValue(), true);
}
else{
if(src==nColsEdit || src==nRowsEdit || src==shaperCombo || src==shaperEditBtn){
shaperChange();
sync();
}
parent.abcpp.setActiveBagContent(visualIndex, abc, altNull ? null : altAbc, null);
ActiveBoxBag abg=(ActiveBoxBag)parent.abcpp.getAbstractBox(visualIndex);
if(abg!=null){
boxBaseButton.setPreview(abg);
abg.setAlternative(toggleAlt.isSelected());
}
}
}
return result;
}
protected void resized(){
if(abc!=null){
widthEdit.setValue((int)abc.w);
heightEdit.setValue((int)abc.h);
}
}
public void fillData(Activity act){
abc = (act!=null && act.abc!=null && act.abc.length>index ? act.abc[index] : null);
altAbc=(act!=null && act.abc!=null && altIndex>=0 && altIndex<act.abc.length) ? act.abc[altIndex] : null;
setActiveBagContent(abc, altAbc);
scrambleChk.setSelected(act!=null && (act.shuffleAlways() || (act.scramble!=null && act.scramble.length>index ? act.scramble[index] : false)));
scrambleChk.setEnabled(act!=null && !act.shuffleAlways());
}
public void setActiveBagContent(ActiveBagContent abc, ActiveBagContent altAbc){
this.abc=abc;
this.altAbc=altAbc;
altNull=(altAbc==null);
// ADDED
// Modified to solve bug 38: Data lost when editing crosswords
// ActiveBagContent.checkCells sets the number of cells to the values specified by the
// Shaper. This can cause lost of data in Crossword activities, because they sould use
// ActiveBagContent objects with more cells than the specified by the Shaper.
if(abc!=null && !simpleMode)
abc.checkCells();
if(altAbc!=null && !simpleMode)
altAbc.checkCells();
// -----
altChk.setSelected(!altNull);
altChk.setEnabled(abc!=null);
toggleAlt.setSelected(false);
toggleAlt.setEnabled(!altNull);
imgButton.setMediaBagEditor(parent.mediaBagEditor);
imgButton.setImgName(abc!=null ? abc.imgName : null);
imgButton.setEnabled(abc!=null);
boxBaseButton.setBoxBase(abc!=null ? abc.bb : null);
parent.abcpp.setActiveBagContent(visualIndex, abc, altAbc, null);
boxBaseButton.setPreview(parent.abcpp.getAbstractBox(visualIndex));
boxBaseButton.setEnabled(abc!=null);
Shaper sh=(abc!=null ? abc.getShaper() : null);
ComboBoxModel model=shaperCombo.getModel();
int modelSize=model.getSize();
int i=-1;
if(sh!=null){
String s=sh.getClassName();
for(i=0; i<modelSize; i++){
TripleString ts=(TripleString)model.getElementAt(i);
if(s.equals(ts.getClassName()))
break;
}
}
shaperCombo.setSelectedIndex(i<modelSize ? i : -1);
shaperCombo.setEnabled(abc!=null);
shaperEditBtn.setEnabled(sh!=null && sh.getEditorPanelClassName()!=null);
nColsEdit.setValue(sh!=null ? sh.getNumColumns() : 1);
nColsEdit.setEnabled(abc!=null);
nRowsEdit.setValue(sh!=null ? sh.getNumRows() : 1);
nRowsEdit.setEnabled(abc!=null);
widthEdit.setValue(abc!=null ? (int)abc.w : 30);
widthEdit.setEnabled(abc!=null);
heightEdit.setValue(abc!=null ? (int)abc.h : 20);
heightEdit.setEnabled(abc!=null);
borderChk.setSelected(abc!=null ? abc.border : false);
borderChk.setEnabled(abc!=null);
}
public void saveData(Activity act){
if(act!=null && act.abc!=null && act.abc.length>index){
act.abc[index]=abc;
act.scramble[index]=scrambleChk.isSelected();
if(altIndex>=0 && altIndex<act.abc.length)
act.abc[altIndex] = altNull ? null : altAbc;
}
}
// Control actions
private void altChkActionPerformed(){
if(toggleAlt.isSelected()){
toggleAlt.setSelected(false);
toggleAltActionPerformed();
}
altNull=!altChk.isSelected();
if(abc!=null && !altNull && altAbc==null){
//altAbc=new ActiveBagContent(abc.ncw, abc.nch);
altAbc=ActiveBagContent.initNew(abc.ncw, abc.nch, 'A');
if(parent.abcpp!=null)
parent.abcpp.setActiveBagContent(visualIndex, abc, altAbc, null);
}
toggleAlt.setEnabled(!altNull);
}
private void toggleAltActionPerformed(){
if(abc!=null && !altNull && altAbc!=null &&
parent.abcpp!=null && parent.abcpp.getAbstractBox(visualIndex)!=null){
boolean alt=toggleAlt.isSelected();
((ActiveBoxGrid)parent.abcpp.getAbstractBox(visualIndex)).setAlternative(alt);
imgButton.setImgName(alt ? altAbc.imgName : abc.imgName);
}
}
private void shaperComboActionPerformed(){
TripleString ts=(TripleString)shaperCombo.getSelectedItem();
}
private boolean shaperEditBtnActionPerformed(){
if(abc==null)
return false;
AbstractBox bx=parent.abcpp.getAbstractBox(visualIndex);
Dimension d=new Dimension((int)bx.getWidth(), (int)bx.getHeight());
Dimension dBak=(Dimension)d.clone();
Shaper sh=abc.shaper.edit(this, options, d, abc.img, bx.getBoxBaseResolve());
if(sh==null)
return false;
abc.setShaper(sh);
abc.ncw=Math.max(1, sh.getNumColumns());
abc.nch=Math.max(1, sh.getNumRows());
nColsEdit.setValue(abc.ncw);
nRowsEdit.setValue(abc.nch);
abc.checkCells();
//abc.removeUnusedCells();
if(!dBak.equals(d)){
abc.w=d.width/abc.ncw;
abc.h=d.height/abc.nch;
}
return true;
}
private void boxBaseButtonActionPerformed(){
BoxBase bb=boxBaseButton.getBoxBase();
if(abc!=null && bb!=null){
abc.setBoxBase(bb);
if(altAbc!=null && simpleMode){
altAbc.setBoxBase(bb);
}
}
}
private void imgButtonActionPerformed(){
if(abc!=null){
ActiveBagContent abcDest=toggleAlt.isSelected() ? altAbc : abc;
if(abcDest.imgName!=null)
abcDest.img=null;
abcDest.imgName=imgButton.getImgName();
if(parent.mediaBagEditor!=null){
try{
if(abcDest.imgName!=null)
abcDest.setImgContent(parent.mediaBagEditor.getMediaBag().getImageElement(abcDest.imgName), true);
else
abcDest.setImgContent(null, false);
} catch(Exception ex){
options.getMessages().showErrorWarning(this, "ERROR", ex);
}
}
}
}
protected void sync(){
if(abc!=null && syncPanel!=null && syncPanel.abc!=null){
syncPanel.nColsEdit.setValue(nColsEdit.getValue());
syncPanel.nRowsEdit.setValue(nRowsEdit.getValue());
syncPanel.shaperCombo.setSelectedItem(shaperCombo.getSelectedItem());
syncPanel.shaperChange();
}
}
private void shaperChange(){
if(abc==null)
return;
try{
// AFEGIT:
abc.ncw=nColsEdit.getValue();
abc.nch=nRowsEdit.getValue();
//
TripleString ts=(TripleString)shaperCombo.getSelectedItem();
String newShaperClass=ts.getClassName();
if(!abc.getShaper().getClassName().equals(newShaperClass)){
abc.setShaper(Shaper.createShaper(newShaperClass, abc.ncw, abc.nch));
//abc.removeUnusedCells();
abc.checkCells();
}
else{
// adjust resizing of columns
//abc.getShaper().reset(nColsEdit.getValue(), nRowsEdit.getValue());
abc.getShaper().reset(abc.ncw, abc.nch);
//abc.removeUnusedCells();
abc.checkCells();
}
if(abc.imgName!=null)
abc.setImgContent(parent.mediaBagEditor.getMediaBag().getImageElement(abc.imgName), true);
if(altAbc!=null){
altAbc.setShaper(abc.getShaper());
//altAbc.removeUnusedCells();
altAbc.checkCells();
if(altAbc.imgName!=null)
altAbc.setImgContent(parent.mediaBagEditor.getMediaBag().getImageElement(altAbc.imgName), true);
}
shaperEditBtn.setEnabled(abc.getShaper().getEditorPanelClassName()!=null);
}
catch(Exception ex){
options.getMessages().showErrorWarning(this, "edit_act_shaper_err", ex);
}
}
private void borderChkActionPerformed(){
if(abc!=null)
abc.border=borderChk.isSelected();
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JCheckBox altChk;
private javax.swing.JCheckBox borderChk;
private edu.xtec.jclic.beans.BoxBaseButton boxBaseButton;
private edu.xtec.jclic.beans.SmallIntEditor heightEdit;
private edu.xtec.jclic.beans.ImgButton imgButton;
private javax.swing.JLabel imgLb;
private edu.xtec.jclic.beans.SmallIntEditor nColsEdit;
private javax.swing.JLabel nColsLb;
private edu.xtec.jclic.beans.SmallIntEditor nRowsEdit;
private javax.swing.JLabel nRowsLb;
private javax.swing.JCheckBox scrambleChk;
private javax.swing.JComboBox shaperCombo;
private javax.swing.JButton shaperEditBtn;
private javax.swing.JLabel shaperLb;
private javax.swing.JToggleButton toggleAlt;
private edu.xtec.jclic.beans.SmallIntEditor widthEdit;
// End of variables declaration//GEN-END:variables
}