package pipe.gui;
import pipe.constants.GUIConstants;
import javax.swing.*;
import java.awt.BorderLayout;
/**
* Status Bar to let users know what to do
* */
@SuppressWarnings("serial")
public class StatusBar extends JPanel {
/**
* Provides the appropriate text for the mode that the user is in
*/
public static final String TEXT_FOR_DRAWING =
"Drawing Mode: Click on a button to start adding components to the " + "Editor";
/**
* Provides the text for animation
*/
public static final String TEXT_FOR_ANIMATION =
"Animation Mode: Red transitions are enabled, click a transition to " + "fire it";
/**
* Label on which text is displayed
*/
private final JLabel label;
/**
* Default constructor, performs the set up
*/
public StatusBar() {
super();
label = new JLabel(TEXT_FOR_DRAWING);
this.setLayout(new BorderLayout(0, 0));
this.add(label);
}
/**
* Deprecated
* @param type of change
*/
@Deprecated
public void changeText(int type) {
switch (type) {
case GUIConstants.PLACE:
String textforPlace = "Place Mode: Right click on a Place to see menu options "
+ "[Mouse wheel -> marking; Shift + Mouse wheel -> capacity]";
changeText(textforPlace);
break;
case GUIConstants.IMMTRANS:
String textforTrans = "Immediate Transition Mode: Right click on a Transition to see menu "
+ "options [Mouse wheel -> rotate]";
changeText(textforTrans);
break;
case GUIConstants.TIMEDTRANS:
String textforTimedTrans = "Timed Transition Mode: Right click on a Transition to see menu "
+ "options [Mouse wheel -> rotate]";
changeText(textforTimedTrans);
break;
case GUIConstants.ARC:
String textforArc = "Arc Mode: Right-Click on an Arc to see menu options " + "[Mouse wheel -> weight]";
changeText(textforArc);
break;
case GUIConstants.INHIBARC:
String textforInhibArc =
"Inhibitor Mode: Right-Click on an Arc to see menu options " + "[Mouse wheel -> weight]";
changeText(textforInhibArc);
break;
case GUIConstants.ADDTOKEN:
String textforAddtoken = "Add Token Mode: Click on a Place to add a Token";
changeText(textforAddtoken);
break;
case GUIConstants.DELTOKEN:
String textforDeltoken = "Delete Token Mode: Click on a Place to delete a Token ";
changeText(textforDeltoken);
break;
case GUIConstants.SELECT:
String textforMove = "Select Mode: Click/drag to select objects; drag to move them";
changeText(textforMove);
break;
case GUIConstants.DRAW:
changeText(TEXT_FOR_DRAWING);
break;
case GUIConstants.ANNOTATION:
String textforAnnotation =
"Annotation Mode: Right-Click on an Annotation to see menu options; " + "Double click to edit";
changeText(textforAnnotation);
break;
case GUIConstants.DRAG:
String textforDrag = "Drag Mode";
changeText(textforDrag);
break;
case GUIConstants.MARKING:
String textforMarking = "Add a marking parameter";
changeText(textforMarking);
break;
case GUIConstants.RATE:
String textforRate = "Add a rate parameter";
changeText(textforRate);
break;
default:
changeText("To-do (textfor" + type);
break;
}
}
/**
* Change the text on the status bar
* @param newText new text
*/
public void changeText(String newText) {
label.setText(newText);
}
}