12
12
import pipe.dataLayer.Arc;
13
13
import pipe.dataLayer.NetType;
14
import pipe.dataLayer.TimedArc;
15
import pipe.dataLayer.TransportArc;
14
import pipe.dataLayer.TimedInhibitorArcComponent;
15
import pipe.dataLayer.TimedInputArcComponent;
16
import pipe.dataLayer.TransportArcComponent;
16
17
import pipe.gui.CreateGui;
17
18
import pipe.gui.action.SplitArcAction;
19
public class TimedArcHandler extends ArcHandler{
20
public class TimedArcHandler extends ArcHandler {
21
22
public TimedArcHandler(Container contentpane, Arc obj) {
22
23
super(contentpane, obj);
23
24
enablePopup = true;
26
28
public JPopupMenu getPopup(MouseEvent e) {
27
29
int popupIndex = 0;
28
30
JMenuItem menuItem;
29
31
JPopupMenu popup = super.getPopup(e);
31
if (myObject instanceof TimedArc && ! (myObject instanceof TransportArc) ){
32
if(!CreateGui.getModel().netType().equals(NetType.UNTIMED)){
33
menuItem = new JMenuItem("Properties");
34
menuItem.addActionListener(new ActionListener(){
33
if (myObject instanceof TimedInputArcComponent
34
&& !(myObject instanceof TransportArcComponent)) {
35
if (!CreateGui.getModel().netType().equals(NetType.UNTIMED) && !(myObject instanceof TimedInhibitorArcComponent)) {
36
menuItem = new JMenuItem("Properties");
37
menuItem.addActionListener(new ActionListener() {
35
38
public void actionPerformed(ActionEvent e) {
36
((TimedArc)myObject).showTimeIntervalEditor();
39
((TimedInputArcComponent) myObject).showTimeIntervalEditor();
39
42
popup.insert(menuItem, popupIndex++);
42
menuItem = new JMenuItem(new EditTimeIntervalAction(contentPane, (Arc)myObject));
43
menuItem.setText("Edit Time Interval");
44
popup.insert(menuItem, popupIndex++);
45
* menuItem = new JMenuItem(new EditTimeIntervalAction(contentPane,
46
* (Arc)myObject)); menuItem.setText("Edit Time Interval");
47
* popup.insert(menuItem, popupIndex++);
46
menuItem = new JMenuItem(new SplitArcAction((Arc)myObject, e.getPoint()));
49
menuItem = new JMenuItem(new SplitArcAction((Arc) myObject, e
47
51
menuItem.setText("Insert Point");
48
52
popup.insert(menuItem, popupIndex++);
50
if (((TimedArc)myObject).hasInverse()){
51
menuItem = new JMenuItem(
52
new SplitArcsAction((TimedArc)myObject, false));
54
menuItem.setText("Join Arcs (PT / TP)");
55
popup.insert(menuItem, popupIndex++);
57
54
popup.insert(new JPopupMenu.Separator(), popupIndex);
62
60
public void mousePressed(MouseEvent e) {
63
if (CreateGui.getApp().isEditionAllowed()){
64
if (e.getClickCount()==2){
65
Arc arc = (Arc)myObject;
66
if (e.isControlDown()){
61
if (CreateGui.getApp().isEditionAllowed()) {
62
if (e.getClickCount() == 2) {
63
Arc arc = (Arc) myObject;
64
if (e.isControlDown()) {
67
65
CreateGui.getView().getUndoManager().addNewEdit(
68
66
arc.getArcPath().insertPoint(
69
new Point2D.Float(arc.getX() + e.getX(),
70
arc.getY() + e.getY()), e.isAltDown()));
71
}else if(!CreateGui.getModel().netType().equals(NetType.UNTIMED)){
72
((TimedArc)myObject).showTimeIntervalEditor();
67
new Point2D.Float(arc.getX() + e.getX(),
68
arc.getY() + e.getY()),
70
} else if (!CreateGui.getModel().netType().equals(NetType.UNTIMED)) {
71
if(!(myObject instanceof TimedInhibitorArcComponent))
72
((TimedInputArcComponent) myObject).showTimeIntervalEditor();
76
super.mousePressed(e);
76
super.mousePressed(e);