/* ******************************************************************************
* Copyright (c) 2006-2012 XMind Ltd. and others.
*
* This file is a part of XMind 3. XMind releases 3 and
* above are dual-licensed under the Eclipse Public License (EPL),
* which is available at http://www.eclipse.org/legal/epl-v10.html
* and the GNU Lesser General Public License (LGPL),
* which is available at http://www.gnu.org/licenses/lgpl.html
* See http://www.xmind.net/license.html for details.
*
* Contributors:
* XMind Ltd. - initial API and implementation
*******************************************************************************/
package org.xmind.gef.part;
import java.util.HashMap;
import java.util.Map;
import org.xmind.gef.GEF;
/**
* @author Brian Sun
*/
public class PartRoles {
private Map<String, String> reqToRole = new HashMap<String, String>();
public PartRoles() {
setRole(GEF.REQ_SELECT, GEF.ROLE_SELECTABLE);
setRole(GEF.REQ_SELECT_ALL, GEF.ROLE_SELECTABLE);
setRole(GEF.REQ_SELECT_MULTI, GEF.ROLE_SELECTABLE);
setRole(GEF.REQ_SELECT_NONE, GEF.ROLE_SELECTABLE);
setRole(GEF.REQ_SELECT_SINGLE, GEF.ROLE_SELECTABLE);
setRole(GEF.REQ_CREATE, GEF.ROLE_CREATABLE);
setRole(GEF.REQ_DELETE, GEF.ROLE_DELETABLE);
setRole(GEF.REQ_EXTEND, GEF.ROLE_EXTENDABLE);
setRole(GEF.REQ_COLLAPSE, GEF.ROLE_EXTENDABLE);
setRole(GEF.REQ_EXTEND_ALL, GEF.ROLE_EXTENDABLE);
setRole(GEF.REQ_COLLAPSE_ALL, GEF.ROLE_EXTENDABLE);
setRole(GEF.REQ_MOVETO, GEF.ROLE_MOVABLE);
setRole(GEF.REQ_COPYTO, GEF.ROLE_MOVABLE);
setRole(GEF.REQ_RESIZE, GEF.ROLE_MOVABLE);
setRole(GEF.REQ_ALIGN, GEF.ROLE_MOVABLE);
setRole(GEF.REQ_SORT, GEF.ROLE_SORTABLE);
setRole(GEF.REQ_MOVE_NEXT, GEF.ROLE_MOVABLE);
setRole(GEF.REQ_MOVE_PREV, GEF.ROLE_MOVABLE);
setRole(GEF.REQ_MOVE_UP, GEF.ROLE_MOVABLE);
setRole(GEF.REQ_MOVE_DOWN, GEF.ROLE_MOVABLE);
setRole(GEF.REQ_MOVE_LEFT, GEF.ROLE_MOVABLE);
setRole(GEF.REQ_MOVE_RIGHT, GEF.ROLE_MOVABLE);
setRole(GEF.REQ_MODIFY, GEF.ROLE_MODIFIABLE);
setRole(GEF.REQ_ZOOM, GEF.ROLE_SCALABLE);
setRole(GEF.REQ_ZOOMIN, GEF.ROLE_SCALABLE);
setRole(GEF.REQ_ZOOMOUT, GEF.ROLE_SCALABLE);
setRole(GEF.REQ_ACTUALSIZE, GEF.ROLE_SCALABLE);
setRole(GEF.REQ_FITSIZE, GEF.ROLE_SCALABLE);
setRole(GEF.REQ_FITSELECTION, GEF.ROLE_SCALABLE);
setRole(GEF.REQ_SHOW_ALL, GEF.ROLE_FILTERABLE);
setRole(GEF.REQ_SHOW_OTHER, GEF.ROLE_FILTERABLE);
setRole(GEF.REQ_HIDE_ALL, GEF.ROLE_FILTERABLE);
setRole(GEF.REQ_SHOW, GEF.ROLE_FILTERABLE);
setRole(GEF.REQ_HIDE, GEF.ROLE_FILTERABLE);
setRole(GEF.REQ_SHOW_ONLY, GEF.ROLE_FILTERABLE);
setRole(GEF.REQ_COPY, GEF.ROLE_EDITABLE);
setRole(GEF.REQ_CUT, GEF.ROLE_EDITABLE);
setRole(GEF.REQ_PASTE, GEF.ROLE_EDITABLE);
setRole(GEF.REQ_NAV_UP, GEF.ROLE_NAVIGABLE);
setRole(GEF.REQ_NAV_LEFT, GEF.ROLE_NAVIGABLE);
setRole(GEF.REQ_NAV_END, GEF.ROLE_NAVIGABLE);
setRole(GEF.REQ_NAV_RIGHT, GEF.ROLE_NAVIGABLE);
setRole(GEF.REQ_NAV_BEGINNING, GEF.ROLE_NAVIGABLE);
setRole(GEF.REQ_NAV_DOWN, GEF.ROLE_NAVIGABLE);
setRole(GEF.REQ_NAV_NEXT, GEF.ROLE_NAVIGABLE);
setRole(GEF.REQ_NAV_PREV, GEF.ROLE_NAVIGABLE);
setRole(GEF.REQ_TRAVERSE, GEF.ROLE_TRAVERSABLE);
setRole(GEF.REQ_GET_TRAVERSABLES, GEF.ROLE_TRAVERSABLE);
setRole(GEF.REQ_DROP, GEF.ROLE_DROP_TARGET);
}
public boolean hasRole(String role) {
return reqToRole.containsValue(role);
}
public boolean hasRequest(String requestType) {
return reqToRole.containsKey(requestType);
}
public String getRole(String requestType) {
return reqToRole.get(requestType);
}
public void setRole(String requestType, String role) {
reqToRole.put(requestType, role);
}
}