Converted all CRLF to LF.
[indepmod/mmn.git] / IndependentModeler / src / cz / cvut / promod / services / menuService / utils / MenuItemPosition.java
blob664a8d6a08be31e1c1227cf6d7b328646fe1e9c1
1 package cz.cvut.promod.services.menuService.utils;
3 import org.apache.log4j.Logger;
5 /**
6 * ProMod, master thesis project
7 * User: Petr Zverina, petr.zverina@gmail.com
8 * Date: 1:46:34, 2.2.2010
9 */
11 /**
12 * Specifies the menu item hierarchical and relative or absolute position in menu.
14 public final class MenuItemPosition{
16 private static final Logger LOG = Logger.getLogger(MenuItemPosition.class);
18 /**
19 * Specifies relative menu item position
21 public static enum PlacementStyle {
22 /** First item in menu. */
23 FIRST,
25 /** Last item in menu. */
26 LAST,
28 /** Group menu item having the same text. Last if there is no name duplicity. */
29 GROUPED
32 private final PositionInfo positionInfo;
33 private final String hierarchicalPlacement;
35 /**
36 * Constructs new MenuItemPosition holding hierarchical placement information.
38 * @param hierarchicalPlacement is the info about hierarchical position for new menu item
40 public MenuItemPosition(final String hierarchicalPlacement){
41 positionInfo = new PositionInfo();
42 this.hierarchicalPlacement = hierarchicalPlacement;
45 /**
46 * Constructs new MenuItemPosition holding hierarchical placement information and relative position.
48 * @param hierarchicalPlacement is the info about hierarchical position for new menu item
50 * @param placementStyle defines relative menu item position in the menu
52 public MenuItemPosition(final String hierarchicalPlacement, final PlacementStyle placementStyle){
53 this(hierarchicalPlacement);
55 positionInfo.setRelativePosition(placementStyle);
58 /**
59 * Constructs new MenuItemPosition holding hierarchical placement information and absolute position.
61 * @param hierarchicalPlacement is the info about hierarchical position for new menu item
63 * @param position defines absolute menu item position in the menu
65 public MenuItemPosition(final String hierarchicalPlacement, final int position){
66 this(hierarchicalPlacement);
68 if(position < 0){
69 LOG.error("Wrong menu position for menu item. Position has been set to zero.");
70 positionInfo.setPosition(0);
71 } else {
72 positionInfo.setPosition(position);
76 /**
77 * Returns required hierarchical placement information.
79 * @return hierarchical placement information
81 public String getHierarchicalPlacement() {
82 return hierarchicalPlacement;
85 /**
86 * Returns absolute position for menu item.
88 * @return absolute position
90 public int getPosition() {
91 return positionInfo.getAbsolutePosition();
94 /**
95 * Returns relative position for menu item.
97 * @return relative position
99 public PlacementStyle getPlacementStyle() {
100 return positionInfo.getRelativePosition();
104 * Returns information about relative and/or absolute position.
106 * @return information about relative and/or absolute position
108 public PositionInfo getPositionInfo() {
109 return positionInfo;
113 * Holds the absolute and/or relative position information.
115 public static final class PositionInfo{
118 * If position > 0 -> then use position (absolute positioning), else use placementStyle (relative positioning)
120 private int position = -1;
123 * Relative positioning.
125 private PlacementStyle placementStyle = PlacementStyle.LAST;
128 * Returns absolute positioning information.
130 * @return absolute positioning information
132 public int getAbsolutePosition() {
133 return position;
137 * Returns relative positioning information.
139 * @return relative positioning information
141 public PlacementStyle getRelativePosition() {
142 return placementStyle;
146 * Sets absolute positioning information.
148 * @param position is the new absolute position
150 public void setPosition(final int position) {
151 this.position = position;
155 * Sets relative positioning information.
157 * @param placementStyle is the new relative position
159 public void setRelativePosition(final PlacementStyle placementStyle) {
160 this.placementStyle = placementStyle;