X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.diagram.profile%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fprofile%2Fview%2FProfilesView.java;h=338721d3f043ac323cff32d83754e6ecb4b65994;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hp=571bff24acded36c4b06600b6bb8ffb03eec29c1;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.diagram.profile/src/org/simantics/diagram/profile/view/ProfilesView.java b/bundles/org.simantics.diagram.profile/src/org/simantics/diagram/profile/view/ProfilesView.java index 571bff24a..338721d3f 100644 --- a/bundles/org.simantics.diagram.profile/src/org/simantics/diagram/profile/view/ProfilesView.java +++ b/bundles/org.simantics.diagram.profile/src/org/simantics/diagram/profile/view/ProfilesView.java @@ -1,105 +1,105 @@ -/******************************************************************************* - * Copyright (c) 2007, 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.diagram.profile.view; - -import org.eclipse.ui.IWorkbenchPart; -import org.simantics.Simantics; -import org.simantics.databoard.util.URIStringUtils; -import org.simantics.db.ReadGraph; -import org.simantics.db.Resource; -import org.simantics.db.common.request.ResourceRead; -import org.simantics.db.common.utils.NameUtils; -import org.simantics.db.exception.DatabaseException; -import org.simantics.db.management.ISessionContext; -import org.simantics.diagram.stubs.DiagramResource; -import org.simantics.modeling.ModelingResources; -import org.simantics.ui.workbench.IPropertyPage; -import org.simantics.views.swt.ModelledView; - -/** - * @author Antti Villberg - */ -public class ProfilesView extends ModelledView { - - @Override - protected String configurationURI() { - return DiagramResource.URIs.ProfilesView; - } - - @Override - protected void inputChanged(IWorkbenchPart part, Object input) { - //System.out.println("input: " + input); - updateViewDescription(input); - super.inputChanged(part, input); - } - - private void updateViewDescription(Object input) { - if (input instanceof Resource) { - Resource r = (Resource) input; - ISessionContext ctx = getSessionContext(); - if (ctx != null) { - try { - String desc = ctx.getSession().syncRequest(new ResourceRead(r) { - @Override - public String perform(ReadGraph graph) throws DatabaseException { - Resource r = resource; - Resource config = getConfiguration(graph, r); - if (config != null) - r = config; - - return formName(graph, r); - } - - private String formName(ReadGraph graph, Resource r) throws DatabaseException { - String name = NameUtils.getSafeName(graph, r); - final Resource project = Simantics.getProjectResource(); - String projectUri = project != null ? graph.getPossibleURI(project) : ""; - String uri = graph.getPossibleURI(r); - if (uri != null) { - if (uri.startsWith(projectUri)) - uri = uri.substring(projectUri.length()); - uri = URIStringUtils.unescape(uri); - } - return uri != null ? name + " (" + uri + ")" : name; - } - - private Resource getConfiguration(ReadGraph graph, Resource r) throws DatabaseException { - DiagramResource DIA = DiagramResource.getInstance(graph); - Resource diagram = graph.getPossibleObject(r, DIA.RuntimeDiagram_HasConfiguration); - if (diagram == null) - return r; - ModelingResources MOD = ModelingResources.getInstance(graph); - Resource config = graph.getPossibleObject(diagram, MOD.DiagramToComposite); - if (config == null) - return diagram; - return config; - } - }); - setContentDescription(desc); - } catch (DatabaseException e) { - setContentDescription(e.getMessage()); - } - } - setVisible(true); - } else { - setContentDescription("Profiles not available."); - setVisible(false); - } - } - - @Override - protected IPropertyPage getPropertyPage() { - //return new PropertyPage(getSite()); - return null; - } - -} +/******************************************************************************* + * Copyright (c) 2007, 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.diagram.profile.view; + +import org.eclipse.ui.IWorkbenchPart; +import org.simantics.Simantics; +import org.simantics.databoard.util.URIStringUtils; +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.common.request.ResourceRead; +import org.simantics.db.common.utils.NameUtils; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.management.ISessionContext; +import org.simantics.diagram.stubs.DiagramResource; +import org.simantics.modeling.ModelingResources; +import org.simantics.ui.workbench.IPropertyPage; +import org.simantics.views.swt.ModelledView; + +/** + * @author Antti Villberg + */ +public class ProfilesView extends ModelledView { + + @Override + protected String configurationURI() { + return DiagramResource.URIs.ProfilesView; + } + + @Override + protected void inputChanged(IWorkbenchPart part, Object input) { + //System.out.println("input: " + input); + updateViewDescription(input); + super.inputChanged(part, input); + } + + private void updateViewDescription(Object input) { + if (input instanceof Resource) { + Resource r = (Resource) input; + ISessionContext ctx = getSessionContext(); + if (ctx != null) { + try { + String desc = ctx.getSession().syncRequest(new ResourceRead(r) { + @Override + public String perform(ReadGraph graph) throws DatabaseException { + Resource r = resource; + Resource config = getConfiguration(graph, r); + if (config != null) + r = config; + + return formName(graph, r); + } + + private String formName(ReadGraph graph, Resource r) throws DatabaseException { + String name = NameUtils.getSafeName(graph, r); + final Resource project = Simantics.getProjectResource(); + String projectUri = project != null ? graph.getPossibleURI(project) : ""; + String uri = graph.getPossibleURI(r); + if (uri != null) { + if (uri.startsWith(projectUri)) + uri = uri.substring(projectUri.length()); + uri = URIStringUtils.unescape(uri); + } + return uri != null ? name + " (" + uri + ")" : name; + } + + private Resource getConfiguration(ReadGraph graph, Resource r) throws DatabaseException { + DiagramResource DIA = DiagramResource.getInstance(graph); + Resource diagram = graph.getPossibleObject(r, DIA.RuntimeDiagram_HasConfiguration); + if (diagram == null) + return r; + ModelingResources MOD = ModelingResources.getInstance(graph); + Resource config = graph.getPossibleObject(diagram, MOD.DiagramToComposite); + if (config == null) + return diagram; + return config; + } + }); + setContentDescription(desc); + } catch (DatabaseException e) { + setContentDescription(e.getMessage()); + } + } + setVisible(true); + } else { + setContentDescription("Profiles not available."); + setVisible(false); + } + } + + @Override + protected IPropertyPage getPropertyPage() { + //return new PropertyPage(getSite()); + return null; + } + +}