/*
* File : NewLibraryDlg.java
* Created : 06-sep-2004 17:09
* 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.project;
import edu.xtec.jclic.PlayerSettings;
import edu.xtec.jclic.misc.Utils;
import edu.xtec.util.Messages;
import edu.xtec.util.Options;
import edu.xtec.util.StrUtils;
import java.awt.Component;
import java.io.File;
/**
*
* @author Francesc Busquets (fbusquets@xtec.cat)
* @version 13.08.29
*/
public class NewLibraryDlg extends javax.swing.JPanel {
PlayerSettings settings;
Options options;
/** Creates new form NewLibraryDlg */
public NewLibraryDlg(PlayerSettings settings) {
this.settings=settings;
this.options=settings.rb.getOptions();
initComponents();
}
/** 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
javax.swing.ButtonGroup bg;
javax.swing.JLabel fileLabel;
java.awt.GridBagConstraints gridBagConstraints;
bg = new javax.swing.ButtonGroup();
btOptionNew = new javax.swing.JRadioButton();
btOptionLink = new javax.swing.JRadioButton();
fileLabel = new javax.swing.JLabel();
fileText = new javax.swing.JTextField();
fileBrowseBtn = new javax.swing.JButton();
setLayout(new java.awt.GridBagLayout());
btOptionNew.setSelected(true);
btOptionNew.setText(options.getMsg("libraryManager_newLibaryOption"));
bg.add(btOptionNew);
btOptionNew.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btOptionNewActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 6, 2);
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
add(btOptionNew, gridBagConstraints);
btOptionLink.setText(options.getMsg("libraryManager_connectToExistingOption"));
bg.add(btOptionLink);
btOptionLink.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btOptionLinkActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.insets = new java.awt.Insets(6, 2, 2, 2);
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
add(btOptionLink, gridBagConstraints);
fileLabel.setText(options.getMsg("libraryManager_fileOrUrlCaption"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.insets = new java.awt.Insets(2, 20, 2, 2);
add(fileLabel, gridBagConstraints);
fileText.setPreferredSize(new java.awt.Dimension(200, 20));
fileText.setEnabled(false);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
gridBagConstraints.weightx = 1.0;
add(fileText, gridBagConstraints);
fileBrowseBtn.setText("...");
fileBrowseBtn.setToolTipText(options.getMsg("BROWSE_FILES"));
fileBrowseBtn.setEnabled(false);
fileBrowseBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
fileBrowseBtnActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
add(fileBrowseBtn, gridBagConstraints);
}//GEN-END:initComponents
private void fileBrowseBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileBrowseBtnActionPerformed
int[] filters={Utils.JCLIC_FF};
String result=settings.fileSystem.chooseFile(settings.rootPath+File.separator+".", false, filters, settings.rb.getOptions(), null, this, false);
if(result!=null)
fileText.setText(settings.fileSystem.getFullFileNamePath(result));
}//GEN-LAST:event_fileBrowseBtnActionPerformed
private void btOptionLinkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btOptionLinkActionPerformed
checkEnabled();
}//GEN-LAST:event_btOptionLinkActionPerformed
private void btOptionNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btOptionNewActionPerformed
checkEnabled();
}//GEN-LAST:event_btOptionNewActionPerformed
public void checkEnabled(){
fileText.setEnabled(btOptionLink.isSelected());
fileBrowseBtn.setEnabled(btOptionLink.isSelected());
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JRadioButton btOptionLink;
private javax.swing.JRadioButton btOptionNew;
private javax.swing.JButton fileBrowseBtn;
private javax.swing.JTextField fileText;
// End of variables declaration//GEN-END:variables
public static LibraryManagerElement getLibraryManagerElement(LibraryManager lm, Component parent){
NewLibraryDlg dlg=new NewLibraryDlg(lm.settings);
Messages msg=lm.settings.rb.getOptions().getMessages();
LibraryManagerElement result=null;
while(result==null && msg.showInputDlg(parent, dlg, "libraryManager_newLibraryTitle")){
if(dlg.btOptionNew.isSelected()){
result=lm.createNewProjectLibrary(null, null);
break;
}
else{
String path=StrUtils.nullableString(dlg.fileText.getText());
if(path==null)
msg.showAlert(parent, "libraryManager_warnNoFileSelected");
else
result=lm.locateNewProjectLibrary(path);
}
}
return result;
}
}