/*
* File : TagReplaceEditorPanel.java
* Created : 02-oct-2006 18:30
* By : fbusquets
*
* JClic - Authoring and playing system for educational activities
*
* Copyright (C) 2000 - 2006 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.automation.tagreplace;
import edu.xtec.jclic.Activity;
import edu.xtec.jclic.automation.AutoContentProviderEditor;
import edu.xtec.jclic.edit.Editor;
import edu.xtec.jclic.edit.EditorPanel;
import edu.xtec.jclic.fileSystem.FileSystem;
import edu.xtec.jclic.misc.Utils;
import edu.xtec.util.Options;
import edu.xtec.util.StrUtils;
import java.util.EventObject;
/**
*
* @author Francesc Busquets (fbusquets@xtec.cat)
* @version 13.08.09
*/
public class TagReplaceEditorPanel extends EditorPanel {
/** Creates new form TagReplaceEditorPanel */
public TagReplaceEditorPanel(Options options) {
super(options);
initComponents();
postInit(250, false, 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;
tagPanel = new javax.swing.JPanel();
tagStartLb = new javax.swing.JLabel();
tagStartTx = new javax.swing.JTextField();
tagEndLb = new javax.swing.JLabel();
tagEndTx = new javax.swing.JTextField();
filePanel = new javax.swing.JPanel();
fileLb = new javax.swing.JLabel();
fileTx = new javax.swing.JTextField();
browseBtn = new javax.swing.JButton();
charsetLb = new javax.swing.JLabel();
charsetCombo = new javax.swing.JComboBox();
setLayout(new java.awt.GridBagLayout());
tagPanel.setLayout(new java.awt.GridBagLayout());
tagPanel.setBorder(new javax.swing.border.TitledBorder(options.getMsg("edit_tagRep_tags")));
tagStartLb.setLabelFor(tagStartTx);
tagStartLb.setText(options.getMsg("edit_tagRep_tagStart"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
tagPanel.add(tagStartLb, gridBagConstraints);
tagStartTx.setColumns(5);
tagStartTx.setText(TagReplace.DEFAULT_TAG_START);
tagStartTx.setToolTipText(options.getMsg("edit_tagRep_tagStart_tooltip"));
tagStartTx.getDocument().addDocumentListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
tagPanel.add(tagStartTx, gridBagConstraints);
tagEndLb.setLabelFor(tagEndTx);
tagEndLb.setText(options.getMsg("edit_tagRep_tagEnd"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
tagPanel.add(tagEndLb, gridBagConstraints);
tagEndTx.setColumns(5);
tagEndTx.setText(TagReplace.DEFAULT_TAG_END);
tagEndTx.setToolTipText(options.getMsg("edit_tagRep_tagEnd_tooltip"));
tagEndTx.getDocument().addDocumentListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
tagPanel.add(tagEndTx, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
add(tagPanel, gridBagConstraints);
filePanel.setLayout(new java.awt.GridBagLayout());
filePanel.setBorder(new javax.swing.border.TitledBorder(options.getMsg("edit_tagRep_file")));
fileLb.setLabelFor(fileTx);
fileLb.setText(options.getMsg("edit_tagRep_fileName"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
filePanel.add(fileLb, gridBagConstraints);
fileTx.setText(TagReplace.DEFAULT_TAG_START);
fileTx.setToolTipText(options.getMsg("edit_tagRep_fileName_tooltip"));
fileTx.getDocument().addDocumentListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
filePanel.add(fileTx, gridBagConstraints);
browseBtn.setText(options.getMsg("edit_tagRep_browseFile"));
browseBtn.setToolTipText(options.getMsg("edit_tagRep_browseFile_tooltip"));
browseBtn.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
filePanel.add(browseBtn, gridBagConstraints);
charsetLb.setLabelFor(charsetCombo);
charsetLb.setText(options.getMsg("edit_tagRep_charset"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
filePanel.add(charsetLb, gridBagConstraints);
charsetCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "UTF8", "UTF-16", "ISO8859_1", "ASCII" }));
charsetCombo.setSelectedItem(TagReplace.DEFAULT_CHARSET);
charsetCombo.setToolTipText(options.getMsg("edit_tagRep_charset_tooltip"));
charsetCombo.addActionListener(this);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
filePanel.add(charsetCombo, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
add(filePanel, gridBagConstraints);
}//GEN-END:initComponents
public boolean checkIfEditorValid(Editor e) {
return e instanceof TagReplaceEditor;
}
public TagReplaceEditor getTagReplaceEditor(){
return (TagReplaceEditor)getEditor();
}
public TagReplace getTagReplace(){
TagReplaceEditor tred=getTagReplaceEditor();
return tred==null ? null : (TagReplace)tred.getAutoContentProvider();
}
protected void fillData() {
TagReplace tr=getTagReplace();
tagStartTx.setText(tr==null ? "" : tr.tagStart);
tagEndTx.setText(tr==null ? "" : tr.tagEnd);
fileTx.setText(tr==null ? "" : tr.mapFileName);
charsetCombo.setSelectedItem(tr==null ? TagReplace.DEFAULT_CHARSET : tr.fileCharset);
setModified(false);
}
protected void saveData() {
TagReplace tr=getTagReplace();
if(tr!=null){
tr.tagStart=tagStartTx.getText();
tr.tagEnd=tagEndTx.getText();
tr.mapFileName=StrUtils.nullableString(fileTx.getText());
tr.fileCharset=(String)charsetCombo.getSelectedItem();
}
}
@Override
public boolean eventPerformed(EventObject ev){
Object cmp=ev==null ? null : ev.getSource();
boolean result=(cmp!=null);
if(cmp==browseBtn){
selectTextFile();
}
return result;
}
protected void selectTextFile(){
TagReplaceEditor tred=getTagReplaceEditor();
if(tred!=null){
Activity act=tred.getActivity();
if(act!=null){
FileSystem fs=act.getProject().getFileSystem();
int[] filters=new int[]{Utils.TEXT_FF};
String[] files=fs.chooseFiles(null, false, filters, options, "edit_find_media", this, true, false);
if(files!=null && files.length>0 && files[0]!=null){
fileTx.setText(files[0]);
setModified(true);
}
}
}
}
@Override
protected javax.swing.Icon getIcon(){
return AutoContentProviderEditor.getIcon();
}
@Override
protected String getTitle(){
return options.getMsg("edit_tagRep_title");
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton browseBtn;
private javax.swing.JComboBox charsetCombo;
private javax.swing.JLabel charsetLb;
private javax.swing.JLabel fileLb;
private javax.swing.JPanel filePanel;
private javax.swing.JTextField fileTx;
private javax.swing.JLabel tagEndLb;
private javax.swing.JTextField tagEndTx;
private javax.swing.JPanel tagPanel;
private javax.swing.JLabel tagStartLb;
private javax.swing.JTextField tagStartTx;
// End of variables declaration//GEN-END:variables
}