/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.ide.api.constraints;
/**
* Represents constraints for some action. Constraints are used to specify
* action's position in the default group, see {@link org.eclipse.che.ide.api.action.DefaultActionGroup}.
*
* @author Evgen Vidolob
*/
public class Constraints {
public final static Constraints FIRST = new Constraints(Anchor.FIRST, null);
public final static Constraints LAST = new Constraints(Anchor.LAST, null);
/** Anchor. */
public Anchor myAnchor;
public Direction direction;
/**
* Id of the action to be positioned relative to. Used when anchor type
* is either {@link Anchor#AFTER} or {@link Anchor#BEFORE}.
*/
public String relativeId;
/**
* Creates a new constraints instance with the specified anchor type and
* id of the relative action.
*
* @param anchor
* anchor
* @param relativeId
* Id of the relative
*/
public Constraints(Anchor anchor, String relativeId) {
myAnchor = anchor;
this.relativeId = relativeId;
}
/**
* Creates a new constraints instance with the specified direction type and
* id of the relative item.
*
* @param direction
* direction
* @param relativeId
* Id of the relative
*/
public Constraints(Direction direction, String relativeId) {
this.direction = direction;
this.relativeId = relativeId;
}
public Constraints clone() {
if (myAnchor != null) {
return new Constraints(myAnchor, relativeId);
} else if (direction != null) {
return new Constraints(direction, relativeId);
}
return null;
}
}