diff --git a/org.fortiss.tooling.kernel.ui/plugin.xml b/org.fortiss.tooling.kernel.ui/plugin.xml index f84dd2cdad77ebdb72f81b1b3276d21dfba748ce..d0c5e0082ec87626711d78c12a48844807b2c46a 100644 --- a/org.fortiss.tooling.kernel.ui/plugin.xml +++ b/org.fortiss.tooling.kernel.ui/plugin.xml @@ -46,6 +46,13 @@ name="Model Elements" restorable="true"> </view> + <view + class="org.fortiss.tooling.kernel.ui.internal.views.LibraryViewFX" + icon="icons/library.png" + id="org.fortiss.tooling.kernel.model.element.library.fx" + name="Model Elements (FX)" + restorable="true"> + </view> <view allowMultiple="false" class="org.fortiss.tooling.kernel.ui.internal.introspection.KISSViewPart" diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/.ratings index 75283430c8346ab6dfc5341b8e549540588a4d82..9e21e2a038395e4d93b434921e15e2a15518e9eb 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/.ratings +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/.ratings @@ -2,6 +2,7 @@ DoubleClick.java fd00e7737c0bad903433c0adb67dad92220ff451 GREEN GenericNewMenu.java 7e0dd435cb5ca6d4b486235ec17eef3e5c7aa5f6 GREEN LibraryView.java 44107622da7bcf431e1177e462d711646488957f GREEN LibraryViewDragSourceAdapter.java 56ef61b214ef5d6cb5b751791a92158bda0391ec GREEN +LibraryViewFX.java 5d9a95ee3362c9610728d6f9cee33672994640c2 RED LinkWithEditorPartListener.java c5ab74424378e7b158a805c4dd14fc03c8abeded GREEN MarkerViewContentProvider.java 4cb1192baebe21bca951c439c163d0c171512515 GREEN MarkerViewPart.java cbb650271b6877af205421b7cb11f930440a7ef9 GREEN diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/LibraryViewFX.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/LibraryViewFX.java new file mode 100644 index 0000000000000000000000000000000000000000..5d9a95ee3362c9610728d6f9cee33672994640c2 --- /dev/null +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/LibraryViewFX.java @@ -0,0 +1,81 @@ +/*-------------------------------------------------------------------------+ +| Copyright 2020 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.kernel.ui.internal.views; + +import static java.util.Collections.emptyList; + +import java.util.Collection; + +import org.eclipse.fx.ui.workbench3.FXViewPart; +import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase; +import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeUIProviderBase; +import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeViewer; + +import javafx.scene.Scene; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; + +/** + * {@link FXViewPart} for showing composable model elements with DND editing support. + * + * @author hoelzl + */ +public final class LibraryViewFX extends FXViewPart { + /** The tree-table viewer. */ + private DynamicTreeViewer<Object> treeViewer; + /** The filter text field if filtering is enabled in content provider. */ + private TextField filterWidget; + + /** {@inheritDoc} */ + @Override + protected Scene createFxScene() { + BorderPane pane = new BorderPane(); + + filterWidget = new TextField(); + filterWidget.textProperty().addListener((obs, oVal, nVal) -> { + // contentProvider.setFilterExpression(nVal); + treeViewer.update(); + }); + + treeViewer = new DynamicTreeViewer<>(new Object(), true, 2, new LibraryContentProvider(), + new LibraryUIProvider()); + + pane.setTop(filterWidget); + pane.setCenter(treeViewer.getControl()); + + return new Scene(pane); + } + + /** {@inheritDoc} */ + @Override + protected void setFxFocus() { + filterWidget.requestFocus(); + } + + /** {@link DynamicTreeContentProviderBase} for the library view. */ + private class LibraryContentProvider extends DynamicTreeContentProviderBase<Object> { + /** {@inheritDoc} */ + @Override + protected Collection<? extends Object> getChildren(Object parent) { + return emptyList(); // FIXME + } + } + + /** {@link DynamicTreeUIProviderBase} for the library view. */ + private class LibraryUIProvider extends DynamicTreeUIProviderBase<Object> { + // TODO: go on here + } +} diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/service/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/service/.ratings index 86599ae4e07d82e60443af868fe84e8d057ae40e..5cc6adbc85f334c591e303037253f355aef6b58a 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/service/.ratings +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/service/.ratings @@ -4,6 +4,6 @@ IContextMenuService.java cfb6b8237b6cd2b0e461991a9ceb95969f330265 GREEN IEditPartFactoryService.java c448bff63fb81f57037c9f1dc5319859c12d0c4d GREEN IMarkerService.java d433e838e387dd2fe61b8dea7395ebb7203ae39b GREEN IModelEditorBindingService.java ce2ae1957e2232bb0fac1d1d262103f9adfc5266 GREEN -IModelElementHandlerService.java 1ff2bda9054f6bbd4017fc0ddc118b7702196815 GREEN +IModelElementHandlerService.java 580f526ed495ae474b3cf8e6851acd64322417da RED INavigatorService.java 8d2ffeb6f075d3abea904b84d8a40090d97837fd GREEN ITutorialUIService.java 72707c60c3d23d8ffc5c579cb9b022bb614eb094 GREEN diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/service/IModelElementHandlerService.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/service/IModelElementHandlerService.java index 1ff2bda9054f6bbd4017fc0ddc118b7702196815..580f526ed495ae474b3cf8e6851acd64322417da 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/service/IModelElementHandlerService.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/service/IModelElementHandlerService.java @@ -31,11 +31,14 @@ import javafx.scene.Node; * @author hoelzl */ public interface IModelElementHandlerService { - /** The view ID of the model element library view. */ public static final String MODEL_ELEMENT_LIBRARY_VIEW = "org.fortiss.tooling.kernel.model.element.library"; + /** The view ID of the model element library view. */ + public static final String MODEL_ELEMENT_LIBRARY_VIEW_FX = + "org.fortiss.tooling.kernel.model.element.library.fx"; + /** Returns the service instance. */ public static IModelElementHandlerService getInstance() { return ModelElementHandlerService.getInstance();