Skip to content
Snippets Groups Projects
Commit d3da5d8c authored by Alexander Diewald's avatar Alexander Diewald
Browse files

Merge remote-tracking branch 'origin/master' into 3437


Conflicts:
	org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/util/.ratings

Signed-off-by: default avatarAlexander Diewald <diewald@fortiss.org>
parents b1ecdd35 a7b7594e
No related branches found
No related tags found
1 merge request!823437
Showing
with 95 additions and 32 deletions
ContextMenuUtil.java 3e04dbd52ee99a59735d39b4087c55b07fb91076 GREEN
EObjectBasedDiagramControllerBase.java b25bbbaa6eef3878b9aea73ca67d66de9beebb18 GREEN
EObjectBasedDiagramControllerBase.java 3564ece9b3cac29caaf9201e0be3451a6a3c2b21 GREEN
EObjectBasedRectangularResizableContentControllerBase.java a263a6c123ee96015e0a5c37b6e3c13ebd0e8a75 GREEN
HierarchicModelElementModelChangeProvider.java 05217577a99d78038763bbcd841a032bb84f0553 GREEN
EObjectModelChangeProvider.java 664e4db2e32124832682aff8235ac380ed4db1c0 GREEN
KernelServiceBasedModelChangeProviderBase.java 7c30347fb0c7cc4aacc79aeaf85167872afc1958 GREEN
LayoutModelElementModelChangeProvider.java 70c50b789c0088a7e5363bf662bc707a5b5ddf10 GREEN
LayoutedModelElementBasedContentAnchorageController.java c4dfb9dbcd16078c63321d5dec13a902e4088949 GREEN
......
......@@ -26,7 +26,6 @@ import org.eclipse.systemfocus.kernel.common.ui.javafx.lwfxef.DiagramViewerFeatu
import org.eclipse.systemfocus.kernel.common.ui.javafx.lwfxef.controller.base.ControllerBase;
import org.eclipse.systemfocus.kernel.common.ui.javafx.lwfxef.model.IModelChangeProvider;
import org.eclipse.systemfocus.kernel.common.ui.javafx.lwfxef.mvc.IMVCBundle;
import org.fortiss.tooling.base.model.element.IHierarchicElement;
import org.fortiss.tooling.kernel.extension.data.IElementCompositionContext;
import org.fortiss.tooling.kernel.service.IElementCompositorService;
import org.fortiss.tooling.kernel.ui.service.IContextMenuService;
......@@ -41,18 +40,17 @@ import javafx.scene.control.MenuItem;
* @author hoelzl
*/
public abstract class EObjectBasedDiagramControllerBase extends ControllerBase {
/** The model change provider. */
private final HierarchicModelElementModelChangeProvider modelChangeProvider;
private final EObjectModelChangeProvider modelChangeProvider;
/** Constructor. */
public EObjectBasedDiagramControllerBase(IMVCBundle mvcb) {
super(mvcb);
if(!(getModel() instanceof IHierarchicElement)) {
throw new IllegalArgumentException(
"Model element must be an instance of an IHierarchicElement.");
if(!(getModel() instanceof EObject)) {
throw new IllegalArgumentException("Model element must be an instance of an EObject.");
}
this.modelChangeProvider =
new HierarchicModelElementModelChangeProvider(getHierarchicElement());
this.modelChangeProvider = new EObjectModelChangeProvider(getEObject());
}
/** {@inheritDoc} */
......@@ -61,10 +59,10 @@ public abstract class EObjectBasedDiagramControllerBase extends ControllerBase {
return modelChangeProvider;
}
/** Returns the {@link IHierarchicElement} model element. */
protected IHierarchicElement getHierarchicElement() {
/** Returns the {@link EObject} model element. */
protected EObject getEObject() {
// wild cast works: see constructor check with exception
return (IHierarchicElement)getModel();
return (EObject)getModel();
}
/** {@inheritDoc} */
......@@ -76,7 +74,7 @@ public abstract class EObjectBasedDiagramControllerBase extends ControllerBase {
double y = max(features.getVerticalSpacing(), diagramLocation.getY());
// wild cast works: see constructor exception
EObject modelParent = getHierarchicElement();
EObject modelParent = getEObject();
IElementCompositionContext edc = createElementCompositionContext(modelParent, x, y, true,
getViewer().getFeatures().getCurrentZoomFactor());
List<MenuItem> result = createPrototypeMenu(modelParent, edc);
......
......@@ -18,29 +18,28 @@ package org.fortiss.tooling.base.ui.editor.fx;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.impl.AdapterImpl;
import org.fortiss.tooling.base.model.element.IHierarchicElement;
import org.eclipse.emf.ecore.EObject;
/**
* An {@link KernelServiceBasedModelChangeProviderBase} for {@link IHierarchicElement}s.
* An {@link KernelServiceBasedModelChangeProviderBase} for {@link EObject}s.
*
* @author hoelzl
*/
final class HierarchicModelElementModelChangeProvider
extends KernelServiceBasedModelChangeProviderBase<IHierarchicElement> {
final class EObjectModelChangeProvider extends KernelServiceBasedModelChangeProviderBase<EObject> {
/** The model element. */
private final IHierarchicElement modelElement;
private final EObject modelElement;
/** The EMF notification listener. */
private final HierarchicElementAdapter notificationListener;
private final EObjectElementAdapter notificationListener;
/** Constructor. */
public HierarchicModelElementModelChangeProvider(IHierarchicElement modelElement) {
public EObjectModelChangeProvider(EObject modelElement) {
this.modelElement = modelElement;
this.notificationListener = new HierarchicElementAdapter();
this.notificationListener = new EObjectElementAdapter();
}
/** {@inheritDoc} */
@Override
protected IHierarchicElement getModelElement() {
protected EObject getModelElement() {
return modelElement;
}
......@@ -50,8 +49,8 @@ final class HierarchicModelElementModelChangeProvider
return notificationListener;
}
/** Specialized adapter listening to model changes of {@link IHierarchicElement}. */
private class HierarchicElementAdapter extends AdapterImpl {
/** Specialized adapter listening to model changes of {@link EObject}. */
private class EObjectElementAdapter extends AdapterImpl {
/** {@inheritDoc} */
@Override
public void notifyChanged(Notification event) {
......
......@@ -3,8 +3,8 @@
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="external-src"/>
<classpathentry kind="src" path="res"/>
<classpathentry exported="true" kind="lib" path="lib/org.eclipse.systemfocus.kernel.common_0.0.5.20191126.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org.eclipse.systemfocus.kernel.common.ui_0.0.5.20191126.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org.eclipse.systemfocus.kernel.common_0.0.5.20191213.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org.eclipse.systemfocus.kernel.common.ui_0.0.5.20191213.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
<attributes>
<attribute name="module" value="true"/>
......
......@@ -25,8 +25,8 @@ Bundle-ClassPath: .,
lib/org.conqat.ide.commons.gef.jar,
lib/org.conqat.ide.commons.ui.jar,
lib/swt-grouplayout.jar,
lib/org.eclipse.systemfocus.kernel.common_0.0.5.20191126.jar,
lib/org.eclipse.systemfocus.kernel.common.ui_0.0.5.20191126.jar
lib/org.eclipse.systemfocus.kernel.common_0.0.5.20191213.jar,
lib/org.eclipse.systemfocus.kernel.common.ui_0.0.5.20191213.jar
Export-Package: aerofx,
aquafx,
jfxtras,
......
......@@ -6,8 +6,8 @@ bin.includes = .,\
lib/org.conqat.ide.commons.ui.jar,\
lib/swt-grouplayout.jar,\
res/,\
lib/org.eclipse.systemfocus.kernel.common_0.0.5.20191126.jar,\
lib/org.eclipse.systemfocus.kernel.common.ui_0.0.5.20191126.jar
lib/org.eclipse.systemfocus.kernel.common_0.0.5.20191213.jar,\
lib/org.eclipse.systemfocus.kernel.common.ui_0.0.5.20191213.jar
jars.compile.order = .
source.. = src/,\
res/,\
......
File added
FXMLUtils.java 4f62cc98d504b978cc8480432c1f53d0fa6fefcf RED
GraphicUtils.java 4d471a310a52bda1c090f956dcdbe90775b12cb8 GREEN
JavaFXUtils.java db3cf28289109ffec64c8f96c7b2de779a977b3b YELLOW
SceneGraphUtils.java f54304c2eb604934de9afdf9d2a8ca88a762398a GREEN
/*-------------------------------------------------------------------------+
| Copyright 2019 fortiss GmbH |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
+--------------------------------------------------------------------------*/
package org.fortiss.tooling.common.ui.javafx.util;
import java.io.InputStream;
import java.net.URL;
import java.util.HashMap;
import javafx.scene.image.Image;
import javafx.scene.paint.Color;
/**
* Utility methods for handling graphics in JavaFX-based views.
*
* @author munaro
*/
public class GraphicUtils {
/** The image cache of loaded images. */
private static final HashMap<String, Image> imageCache = new HashMap<>();
/** Returns the plugin-local URI string for the given resource. */
public static String getURIString(String pluginId, String localPath) {
return "platform:/plugin/" + pluginId + localPath;
}
/** Returns the Java FX Image load from the local path. */
public static Image getFXImage(String pluginId, String localPath) {
String uri = getURIString(pluginId, localPath);
if(uri == null) {
return null;
}
Image cacheImage = imageCache.get(uri);
if(cacheImage == null) {
InputStream in = null;
try {
in = new URL(uri).openStream();
} catch(Exception e) {
e.printStackTrace();
}
if(in != null) {
cacheImage = new Image(in);
}
imageCache.put(uri, cacheImage);
}
return cacheImage;
}
/** Converts the given SWT color to Java FX color. */
public static Color convertColor(org.eclipse.swt.graphics.Color swtColor) {
return Color.rgb(swtColor.getRed(), swtColor.getGreen(), swtColor.getBlue(),
swtColor.getAlpha() / 255.0);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment