Compartment expand/collapse programmatically [message #1451062] |
Thu, 23 October 2014 05:19  |
Eclipse User |
|
|
|
Hello everyone,
I have a class called EntitiesContainer that holds multiple compartments.
What I did is basically, when you right click on the compartment or compartmentName to listen to this event through a double click listener that is applied to both the compartmentXEditpart and compartmentXNameEditpart.
Now, I would like to achieve something like expanding or collapsing this compartment based on the double click but I havent found any way to do this. How can I approach it through the EditPart of this compartment?
Also would it be possible to close all other compartments when one opens, and if so this has to be done with AddSemanticListeners-listenerFilters ?
Any clues will be appreciated.
Kind Regards,
[Updated on: Thu, 23 October 2014 05:57] by Moderator
|
|
|
Re: Compartment expand/collapse programmatically [message #1453776 is a reply to message #1451062] |
Mon, 27 October 2014 09:12  |
Eclipse User |
|
|
|
Hey there, I have resolved this.
If anyone is interested you will need to apply a double click listener in both the xxxEditPart and xxxNameEditPart (if you have a node that holds a compartment and you want it to open either by double clicking on it or its name)
// this goes in the xxxEditPart
@Override
public void performRequest(Request req) {
if (req.getType() == RequestConstants.REQ_OPEN) {
// create your compartment edit part and get it from the children of the xxxEditPart, mine is second in the list, thus i call get(1), you might need to change this
FolderFaultsFolderFaultsFaultCompartmentEditPart test = (FolderFaultsFolderFaultsFaultCompartmentEditPart) this.getChildren().get(1);
// call the method that you will create in the xxxCompartmentEditPart (e.g FolderFaultsFolderFaultsFaultCompartmentEditPart for me)
test.collapseCompartment(test.getCompartmentFigure().isExpanded());
}
}
// this goes in the xxxNameEditPart (if you wish also to collapse/expand when you click in the name of the node, if not is not needed)
@Override
public void performRequest(Request req) {
if (req.getType() == RequestConstants.REQ_OPEN) {
// create your compartment edit part and get it from the children of the xxxEditPart, but first you will need to get the xxxEditPart (that's why I call get parent(), as before mine is second in the list, thus i call get(1), you might need to change this
FolderFaultsFolderFaultsFaultCompartmentEditPart test = (FolderFaultsFolderFaultsFaultCompartmentEditPart) this.getParent().getChildren().get(1);
// call the method that you will create in the xxxCompartmentEditPart (e.g FolderFaultsFolderFaultsFaultCompartmentEditPart for me)
test.collapseCompartment(test.getCompartmentFigure().isExpanded());
}
}
finally create the method in the xxxCompartmentEditPart, for me it is FolderFaultsFolderFaultsFaultCompartmentEditPart
public void collapseCompartment(boolean collapse) {
ChangePropertyValueRequest request = new ChangePropertyValueRequest(
DiagramUIMessages.PropertyDescriptorFactory_CollapseCompartment,
Properties.ID_COLLAPSED, collapse);
getEditDomain().getCommandStack().execute(getCommand(request));
}
Kind Regards,
|
|
|
Powered by
FUDForum. Page generated in 0.11415 seconds