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

CR: YELLOW

parent 72d591ab
No related branches found
No related tags found
1 merge request!473482
ModelElementTreeViewer.java 44744e6b11264547bd6b05a84a427948bf919969 RED
ModelElementTreeViewer.java 6eb558c8d5a0eaf3df55aa1091586cd1faefecb1 YELLOW
......@@ -17,6 +17,9 @@ package org.fortiss.tooling.base.ui.javafx.control.treetableview;
import static javafx.embed.swt.SWTFXUtils.toFXImage;
import java.util.ArrayList;
import java.util.List;
import org.fortiss.tooling.base.model.element.IHierarchicElement;
import org.fortiss.tooling.base.model.element.IModelElement;
import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
......@@ -27,6 +30,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
import javafx.scene.Node;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.MenuItem;
import javafx.scene.control.TreeView;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
......@@ -45,6 +49,12 @@ public class ModelElementTreeViewer<T extends IModelElement & INamedCommentedEle
/** References the constructed {@link DynamicTreeViewer} "controller". */
protected DynamicTreeViewer<T> dynTreeViewer;
/**
* List of context menu entries that supplied by clients (see
* {@link #addContextMenuEntry(MenuItem)}).
*/
protected List<MenuItem> contextMenuEntries = new ArrayList<>();
/** Constructor. */
public ModelElementTreeViewer(TreeView<T> treeView, T modelRoot,
DynamicTreeContentProviderBase<T> contentProvider) {
......@@ -57,9 +67,6 @@ public class ModelElementTreeViewer<T extends IModelElement & INamedCommentedEle
* Creates a default UI provider for {@link DynamicTreeViewer}s that present
* {@link IHierarchicElement}s. It also uses the {@link IModelElementHandlerService} for a nicer
* visual appearance.
* <p>
* TODO(SB, unclear)
* Externalizing this method into a class when subclassing seems appropriate.
*
* @return The constructed UI Provider.
*/
......@@ -88,18 +95,26 @@ public class ModelElementTreeViewer<T extends IModelElement & INamedCommentedEle
@Override
public ContextMenu createContextMenu(T element) {
ContextMenu menu = new ContextMenu();
// TODO (3209): Add sensible default operations for AF3 elements, if they are
// needed. Otherwise, use a list provided by subclasses that defines the menu items
// and their order. The code below is taken from SystemFOCUS and shall serve as a
// reference.
// MenuItem item = new MenuItem("Delete '" + getLabel(element) + "'.");
// item.setOnAction(event -> {
// new DeleteOperation(element).delete();
// viewer.update();
// });
// menu.getItems().add(item);
contextMenuEntries.forEach(entry -> menu.getItems().add(entry));
return menu;
}
};
}
/**
* Method to define context {@link MenuItem}s for items of the underlying content. The given
* function may use the selected element (given as a parameter to the function) to define
* dynamic behavior.
*
* @param menuItem
* {@link MenuItem} and its logic to be added to the context menu.
*/
public void addContextMenuEntry(MenuItem menuItem) {
contextMenuEntries.add(menuItem);
}
/** Update the internal viewer. */
public void update() {
dynTreeViewer.update();
}
}
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