X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.browsing.ui.model%2Fsrc%2Forg%2Fsimantics%2Fbrowsing%2Fui%2Fmodel%2Factions%2FActionCategory.java;fp=bundles%2Forg.simantics.browsing.ui.model%2Fsrc%2Forg%2Fsimantics%2Fbrowsing%2Fui%2Fmodel%2Factions%2FActionCategory.java;h=19485c0d9c1929751dc30c7f39b0d2d03a10bcd1;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.browsing.ui.model/src/org/simantics/browsing/ui/model/actions/ActionCategory.java b/bundles/org.simantics.browsing.ui.model/src/org/simantics/browsing/ui/model/actions/ActionCategory.java new file mode 100644 index 000000000..19485c0d9 --- /dev/null +++ b/bundles/org.simantics.browsing.ui.model/src/org/simantics/browsing/ui/model/actions/ActionCategory.java @@ -0,0 +1,77 @@ +/******************************************************************************* + * Copyright (c) 2010, 2011 Association for Decentralized Information Management in + * Industry THTH ry. + * 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: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.browsing.ui.model.actions; + +import org.simantics.databoard.Bindings; +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.common.utils.NameUtils; +import org.simantics.db.exception.DatabaseException; +import org.simantics.viewpoint.ontology.ViewpointResource; + +public class ActionCategory implements IActionCategory { + + Resource resource; + String label; + double priority; + boolean isSubmenu; + + public ActionCategory(Resource resource, String label, double priority, boolean isSubmenu) { + this.resource = resource; + this.label = label; + this.priority = priority; + this.isSubmenu = isSubmenu; + } + + @Override + public String getLabel() { + return label; + } + + @Override + public double getPriority() { + return priority; + } + + @Override + public boolean isSubmenu() { + return isSubmenu; + } + + public static ActionCategory create(ReadGraph g, Resource r) throws DatabaseException { + ViewpointResource vr = ViewpointResource.getInstance(g); + + String label = NameUtils.getSafeLabel(g, r); + + Resource priorityResource = g.getPossibleObject(r, vr.ActionCategory_HasPriority); + double priority = priorityResource == null ? 0.0 : (Double)g.getValue(priorityResource, Bindings.DOUBLE); + + Resource isSubmenuResource = g.getPossibleObject(r, vr.ActionCategory_IsSubmenu); + boolean isSubmenu = isSubmenuResource == null ? false : (Boolean)g.getValue(isSubmenuResource, Bindings.BOOLEAN); + + return new ActionCategory(r, label, priority, isSubmenu); + } + + @Override + public int hashCode() { + return resource.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if(this == obj) + return true; + if(obj == null || obj.getClass() != ActionCategory.class) + return false; + return resource.equals(((ActionCategory)obj).resource); + } +}