Changeset 89 in tmcsimulator-scriptbuilder for trunk/src/scriptbuilder


Ignore:
Timestamp:
08/28/2017 01:38:15 PM (9 years ago)
Author:
bmcguffin
Message:

Added dropdown menu item to ScriptBuilderFrame?: "Delete Incident". When clicked, user may select an existing incident to delete. Program will prompt user to confirm the deletion, then remove the incident from the script and refresh the display.

Added button to individual event editor window: "Remove this event". When clicked, the currently displayed event will be removed from the timeslice it is in. The display will be refreshed accordingly. NOTE: This still has some bugs, namely that the last remaining event in a timeslice fails to be deleted.

Restructured Interface ScriptEventEditorPanel? to include a removeAssociatedEvent method, which calls a new method in I_ScriptEvent called removeThis, which causes the event to be removed from its timeslice.

Editor.Java previously contained several classes and enums, none of which were set to private scope. Moved these extra classes to their own files to decrease clutter in Editor.java and increase readability of all files.

Location:
trunk/src/scriptbuilder
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/scriptbuilder/gui/IncidentEditorFrame.java

    r81 r89  
    88 
    99import java.awt.Adjustable; 
    10 import java.awt.Color; 
    1110import java.awt.event.AdjustmentEvent; 
    1211import java.awt.event.AdjustmentListener; 
     
    5453     */ 
    5554    private ArrayList<JButton> eventButtons = null; 
    56     /** 
    57      * True if we are currently editing an incident. 
    58      */ 
    59     private boolean editingIncident; 
    60     /** 
    61      * Index of the previous incident. 
    62      */ 
    63     int oldIncidentIndex; 
    6455 
    6556    /** 
     
    127118            } 
    128119 
    129             JButton newButton = null; 
     120            JButton newButton = lastButton; 
    130121            switch (e.getKeyChar()) 
    131122            { 
     
    14701461        addNoiseFrame.setVisible(false); 
    14711462 
    1472         update(null, theIncident); 
     1463        this.update(null, theIncident); 
    14731464}//GEN-LAST:event_jButton2ActionPerformed 
    14741465 
     
    17001691        zoomSlider.setValue(zoomSlider.getValue() <= 5 ? 5 : zoomSlider.getValue() - 1); 
    17011692    }//GEN-LAST:event_zoomOutIconMouseClicked 
    1702     private Color selectedColor = Color.BLACK; 
    17031693 
    17041694    /** 
  • trunk/src/scriptbuilder/gui/ScriptBuilderFrame.form

    r83 r89  
    792792              <Events> 
    793793                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="incidentDetailsActionPerformed"/> 
     794              </Events> 
     795            </MenuItem> 
     796            <MenuItem class="javax.swing.JMenuItem" name="deleteIncident"> 
     797              <Properties> 
     798                <Property name="text" type="java.lang.String" value="Delete Incident"/> 
     799              </Properties> 
     800              <Events> 
     801                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="deleteIncidentActionPerformed"/> 
    794802              </Events> 
    795803            </MenuItem> 
  • trunk/src/scriptbuilder/gui/ScriptBuilderFrame.java

    r87 r89  
    158158        timelinesScrollPane.getHorizontalScrollBar().addAdjustmentListener(listener); 
    159159        timelinesScrollPane.getVerticalScrollBar().addAdjustmentListener(listener); 
     160        repaint(); 
    160161    } 
    161162 
     
    236237                / Math.max(script.absoluteLength(), ScriptBuilderGuiConstants.TICK_TIMELINE_SMALLEST_LENGTH)); 
    237238        zoomSlider.setMaximum(zoomSlider.getMinimum() + 20); 
     239        repaint(); 
    238240    } 
    239241 
     
    350352        editIncident = new javax.swing.JMenuItem(); 
    351353        incidentDetails = new javax.swing.JMenuItem(); 
     354        deleteIncident = new javax.swing.JMenuItem(); 
    352355        jSeparator4 = new javax.swing.JPopupMenu.Separator(); 
    353356        saveIncident = new javax.swing.JMenuItem(); 
     
    13181321        }); 
    13191322        incidentMenu.add(incidentDetails); 
     1323 
     1324        deleteIncident.setText("Delete Incident"); 
     1325        deleteIncident.addActionListener(new java.awt.event.ActionListener() 
     1326        { 
     1327            public void actionPerformed(java.awt.event.ActionEvent evt) 
     1328            { 
     1329                deleteIncidentActionPerformed(evt); 
     1330            } 
     1331        }); 
     1332        incidentMenu.add(deleteIncident); 
    13201333        incidentMenu.add(jSeparator4); 
    13211334 
     
    15551568 
    15561569        incidentFrame.setVisible(false); 
    1557         update(script, script); 
     1570        this.update(script, script); 
    15581571        repaint(); 
    15591572    }//GEN-LAST:event_incidentOkButtonActionPerformed 
     
    16241637            script.saveFile = fc.getSelectedFile(); 
    16251638        } 
    1626         update(script, script); 
     1639        this.update(script, script); 
    16271640        zoomSlider.setValue(zoomSlider.getMinimum()); 
    16281641        repaint(); 
     
    17651778        addNoiseFrame.setVisible(false); 
    17661779 
    1767         update(script, script); 
     1780        this.update(script, script); 
     1781        repaint(); 
    17681782}//GEN-LAST:event_jButton2ActionPerformed 
    17691783 
     
    19121926        script = new SimulationScript(); 
    19131927        script.update(); 
    1914         update(null, script); 
     1928        this.update(null, script); 
    19151929        repaint(); 
    19161930    }//GEN-LAST:event_fileNewActionPerformed 
     
    19321946        if (result != null) 
    19331947        { 
    1934             System.out.println("RESULT = " + result.toString()); 
    1935  
    19361948            input = result.toString(); 
    1937  
    1938             System.out.println("INPUT = " + input); 
    1939  
    19401949            int i = 0; 
    19411950            for (ScriptIncident incident : script.incidents) 
     
    19591968            } 
    19601969        } 
    1961         update(script, script); 
     1970        this.update(script, script); 
     1971        repaint(); 
    19621972    }//GEN-LAST:event_editIncidentActionPerformed 
     1973 
     1974    private void deleteIncidentActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_deleteIncidentActionPerformed 
     1975    {//GEN-HEADEREND:event_deleteIncidentActionPerformed 
     1976        Object[] incidentList = script.incidents.toArray(); 
     1977        String input = ""; 
     1978        ScriptIncident inc = null; 
     1979        Object result = JOptionPane.showInputDialog( 
     1980                this, 
     1981                "Select Incident:", 
     1982                "Save Incident", 
     1983                JOptionPane.PLAIN_MESSAGE, 
     1984                null, 
     1985                incidentList, 
     1986                script.incidents.get(0)); 
     1987 
     1988        if (result != null) 
     1989        { 
     1990            input = result.toString(); 
     1991            int incidentIndex = 0; 
     1992            for (ScriptIncident incident : script.incidents) 
     1993            { 
     1994                incidentIndex++; 
     1995                if (incident == null) 
     1996                { 
     1997                    continue; 
     1998                } 
     1999                if (incident.toString().equals(input)) 
     2000                { 
     2001                    inc = incident; 
     2002                } 
     2003            } 
     2004 
     2005            if (inc != null) 
     2006            { 
     2007                int confirm = JOptionPane.showConfirmDialog(this, 
     2008                        "Are you sure you want to delete " + inc.toString() + "?"); 
     2009                if (confirm == JOptionPane.YES_OPTION) 
     2010                { 
     2011                    script.incidents.remove(inc); 
     2012                    script.incidents.add(null); 
     2013                } 
     2014            } 
     2015        } 
     2016        this.update(script, script); 
     2017        repaint(); 
     2018    }//GEN-LAST:event_deleteIncidentActionPerformed 
    19632019 
    19642020    /** 
     
    20572113    private javax.swing.JButton cancelButton; 
    20582114    private javax.swing.JMenuItem deleteEventList; 
     2115    private javax.swing.JMenuItem deleteIncident; 
    20592116    private javax.swing.JMenuItem editEventList; 
    20602117    private javax.swing.JMenuItem editIncident; 
  • trunk/src/scriptbuilder/gui/panels/IncidentTimelinePanel.java

    r88 r89  
    155155        public void mouseClicked(MouseEvent e) 
    156156        { 
    157             Editor ed = new Editor(); 
     157            Editor ed = new Editor(null); 
    158158            ScriptBuilderFrame f = null; 
    159159            IncidentEditorFrame g = null; 
     
    161161            { 
    162162                f = (ScriptBuilderFrame) getTopLevelAncestor(); 
     163                 
    163164            } 
    164165            else if (getTopLevelAncestor() instanceof IncidentEditorFrame) 
    165166            { 
    166167                g = (IncidentEditorFrame) getTopLevelAncestor(); 
     168                ed = new Editor(g); 
    167169            } 
    168170 
  • trunk/src/scriptbuilder/structures/ScriptEvent.java

    r76 r89  
    8282     */ 
    8383    public int length; 
     84     
     85    private TimeSlice slice; 
    8486 
    8587    /** 
     
    189191        return event instanceof I_EvaluationEvent; 
    190192    } 
     193     
     194    @Override 
     195    public void removeThis() 
     196    { 
     197        this.slice.events.remove(this); 
     198    } 
     199     
     200    @Override 
     201    public void assignTimeSlice(TimeSlice ts) 
     202    { 
     203        this.slice = ts; 
     204    } 
    191205} 
  • trunk/src/scriptbuilder/structures/TimeSlice.java

    r76 r89  
    5858    public void addEvent(I_ScriptEvent event) 
    5959    { 
     60        event.assignTimeSlice(this); 
    6061        events.add(event); 
    6162        Collections.sort(events); 
  • trunk/src/scriptbuilder/structures/events/I_ScriptEvent.java

    r7 r89  
    33import scriptbuilder.structures.ScriptEvent; 
    44import scriptbuilder.structures.ScriptEvent.ScriptEventType; 
     5import scriptbuilder.structures.TimeSlice; 
    56 
    67/** 
     
    1920     */ 
    2021    int getLength(); 
     22     
     23    /** 
     24     * Remove this event from the timeslice it's in. 
     25     */ 
     26    void removeThis(); 
     27     
     28    /** 
     29     * Give this event access to the timeslice it's in. 
     30     *  
     31     * @param ts the timeslice which contains this event 
     32     */ 
     33    void assignTimeSlice(TimeSlice ts); 
    2134 
    2235    /** 
Note: See TracChangeset for help on using the changeset viewer.