/**
* @author pquiring
*/
import java.awt.*;
import javaforce.*;
public class EditElementProperties extends javax.swing.JDialog {
/**
* Creates new form EditElementProperties
*/
public EditElementProperties(java.awt.Frame parent, boolean modal, Element element, float fov) {
super(parent, modal);
initComponents();
this.element = element;
switch (element.type) {
case Element.TYPE_IMAGE:
addPos();
addImage();
if (element.path.length == 1) {
addDuration();
}
addGL(fov);
break;
case Element.TYPE_AUDIO:
addSound();
break;
case Element.TYPE_VIDEO:
addPos();
addSound();
addImage();
addGL(fov);
break;
case Element.TYPE_SPECIAL_CUT:
addDuration();
break;
case Element.TYPE_SPECIAL_BLUR:
addBlur(); //includes duration
break;
case Element.TYPE_CAMERA:
addGL(fov);
break;
case Element.TYPE_SPECIAL_TEXT:
addDuration();
addText();
addColor();
break;
}
pack(); //calls setSize()
JF.sleep(100); //JVM Bug - setSize() and setLocation() need a small delay inbetween
JF.centerWindow(this);
// if (gl != null) gl.init(); //crashes
}
/**
* 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.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
tabs = new javax.swing.JTabbedPane();
save = new javax.swing.JButton();
cancel = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Edit Properties");
setResizable(false);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
}
});
tabs.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
tabsStateChanged(evt);
}
});
save.setText("Save");
save.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
saveActionPerformed(evt);
}
});
cancel.setText("Cancel");
cancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tabs)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(350, Short.MAX_VALUE)
.addComponent(cancel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(save)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(tabs, javax.swing.GroupLayout.DEFAULT_SIZE, 394, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(save)
.addComponent(cancel))
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void cancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelActionPerformed
close();
}//GEN-LAST:event_cancelActionPerformed
private void saveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveActionPerformed
save();
close();
}//GEN-LAST:event_saveActionPerformed
private void tabsStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_tabsStateChanged
}//GEN-LAST:event_tabsStateChanged
private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
if (gl != null) {
gl.uninit();
gl = null;
}
}//GEN-LAST:event_formWindowClosing
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton cancel;
private javax.swing.JButton save;
private javax.swing.JTabbedPane tabs;
// End of variables declaration//GEN-END:variables
private Element element;
private PositionProps pos;
private SoundProps sound;
private ImageProps image;
private DurationProps cut;
private GLProps gl;
private BlurProps blur;
private TextProps text;
private ColorProps clr;
public float fov;
public boolean saved;
private void addPos() {
pos = new PositionProps(element);
tabs.add("Position", pos);
}
private void addSound() {
sound = new SoundProps(element);
tabs.add("Audio", sound);
}
private void addImage() {
image = new ImageProps(element);
tabs.add("Image", image);
}
private void addDuration() {
cut = new DurationProps(element);
tabs.add("Duration", cut);
}
private void addBlur() {
blur = new BlurProps(element);
tabs.add("Blur", blur);
}
private void addGL(float fov) {
gl = new GLProps(element, fov);
tabs.add("3D", gl);
}
private void addText() {
text = new TextProps(element);
tabs.add("Text", text);
}
private void addColor() {
clr = new ColorProps(element);
tabs.add("Color", clr);
}
private void save() {
if (pos != null) pos.save(element);
if (sound != null) sound.save(element);
if (image != null) image.save(element);
if (cut != null) cut.save(element);
if (gl != null) {
fov = gl.getFOV();
gl.save(element);
}
if (blur != null) blur.save(element);
if (text != null) text.save(element);
if (clr != null) clr.save(element);
saved = true;
}
private void close() {
if (gl != null) {
gl.uninit();
gl = null;
}
dispose();
}
}