TVShowTimelineMaker.ui.ConstraintEditors.FieldChangeConstraintEditor.java Source code

Java tutorial

Introduction

Here is the source code for TVShowTimelineMaker.ui.ConstraintEditors.FieldChangeConstraintEditor.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package TVShowTimelineMaker.ui.ConstraintEditors;

import TVShowTimelineMaker.Main;
import TVShowTimelineMaker.timeConstraints.FieldChangeConstraint;
import TVShowTimelineMaker.timeConstraints.interfaces.TimeConstraint;
import TVShowTimelineMaker.timeline.Event;
import TVShowTimelineMaker.timeline.OnceDayEvent;
import com.civprod.swing.CollectionListModel;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import org.joda.time.DateTimeFieldType;

/**
 *
 * @author Steven Owens
 */
public class FieldChangeConstraintEditor extends ConstraintEditorWindow {

    @com.civprod.dynamicClassLoading.ClassInitalizer
    public static final void addMe() {
        ConstraintEditorWindow.addConstraintEditor(FieldChangeConstraint.class, FieldChangeConstraintEditor.class);
    }

    FieldChangeConstraint mFieldChangeConstraint;

    /**
     * Creates new form FieldChangeConstraintEditor
     */
    public FieldChangeConstraintEditor() {
        this(new FieldChangeConstraint(Main.myShow.getTimeLine().anyEventOfType(OnceDayEvent.class),
                Main.myShow.getTimeLine().anyEventOfType(OnceDayEvent.class), DateTimeFieldType.centuryOfEra(), 0));
    }

    /**
     * Creates new form RelationEditor
     *
     * @param inRelation
     */
    public FieldChangeConstraintEditor(FieldChangeConstraint inFieldChangeConstraint) {
        this.initComponents();
        this.mFieldChangeConstraint = inFieldChangeConstraint;

        List<OnceDayEvent> tempModel = new ArrayList<>();
        for (Event curEvent : Main.myShow.getTimeLine().getEvents()) {
            if (curEvent instanceof OnceDayEvent) {
                tempModel.add((OnceDayEvent) curEvent);
            }
        }
        this.listEvent1.setModel(new CollectionListModel<>(tempModel));
        this.listEvent2.setModel(new CollectionListModel<>(tempModel));
        CollectionListModel<DateTimeFieldType> newCollectionListModel = new CollectionListModel<>();
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.centuryOfEra());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.clockhourOfDay());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.clockhourOfHalfday());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.dayOfMonth());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.dayOfWeek());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.dayOfYear());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.era());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.halfdayOfDay());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.hourOfDay());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.hourOfHalfday());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.millisOfDay());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.millisOfSecond());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.minuteOfDay());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.minuteOfHour());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.monthOfYear());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.secondOfDay());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.secondOfMinute());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.weekOfWeekyear());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.weekyear());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.weekyearOfCentury());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.year());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.yearOfCentury());
        newCollectionListModel.add(org.joda.time.DateTimeFieldType.yearOfEra());
        this.listType.setModel(newCollectionListModel);
        this.listEvent1.setSelectedValue(this.mFieldChangeConstraint.getFirstEvent(), true);
        this.listEvent2.setSelectedValue(this.mFieldChangeConstraint.getSecondEvent(), true);
        this.listType.setSelectedValue(this.mFieldChangeConstraint.getDateTimeFieldType(), true);
        this.spinAmount.setValue(this.mFieldChangeConstraint.getAmount());
        this.validate();
    }

    /**
     * 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() {

        jScrollPane2 = new javax.swing.JScrollPane();
        listEvent1 = new javax.swing.JList<TVShowTimelineMaker.timeline.OnceDayEvent>();
        jScrollPane3 = new javax.swing.JScrollPane();
        listEvent2 = new javax.swing.JList<TVShowTimelineMaker.timeline.OnceDayEvent>();
        jScrollPane4 = new javax.swing.JScrollPane();
        listType = new javax.swing.JList<org.joda.time.DateTimeFieldType>();
        spinAmount = new javax.swing.JSpinner();
        cmdCommit = new javax.swing.JButton();

        listEvent1.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };

            public int getSize() {
                return strings.length;
            }

            public Object getElementAt(int i) {
                return strings[i];
            }
        });
        listEvent1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jScrollPane2.setViewportView(listEvent1);

        listEvent2.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };

            public int getSize() {
                return strings.length;
            }

            public Object getElementAt(int i) {
                return strings[i];
            }
        });
        listEvent2.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jScrollPane3.setViewportView(listEvent2);

        listType.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };

            public int getSize() {
                return strings.length;
            }

            public Object getElementAt(int i) {
                return strings[i];
            }
        });
        jScrollPane4.setViewportView(listType);

        spinAmount.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(0), Integer.valueOf(0), null,
                Integer.valueOf(1)));

        cmdCommit.setText("commit");
        cmdCommit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cmdCommitActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup().addContainerGap()
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(spinAmount, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(cmdCommit)
                        .addContainerGap(128, Short.MAX_VALUE)));
        layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup().addContainerGap().addGroup(layout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(spinAmount, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(cmdCommit))
                        .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addContainerGap(141, Short.MAX_VALUE)));

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void cmdCommitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmdCommitActionPerformed
        this.mFieldChangeConstraint = new FieldChangeConstraint(this.listEvent1.getSelectedValue(),
                this.listEvent2.getSelectedValue(), this.listType.getSelectedValue(),
                (Integer) this.spinAmount.getValue());
    }//GEN-LAST:event_cmdCommitActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException
                | javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(FieldChangeConstraintEditor.class.getName())
                    .log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                new FieldChangeConstraintEditor().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton cmdCommit;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JList<TVShowTimelineMaker.timeline.OnceDayEvent> listEvent1;
    private javax.swing.JList<TVShowTimelineMaker.timeline.OnceDayEvent> listEvent2;
    private javax.swing.JList<org.joda.time.DateTimeFieldType> listType;
    private javax.swing.JSpinner spinAmount;
    // End of variables declaration//GEN-END:variables

    @Override
    public TimeConstraint getValue() {
        return this.mFieldChangeConstraint;
    }

    private static final Logger LOG = Logger.getLogger(FieldChangeConstraintEditor.class.getName());
}