use of org.whole.lang.reflect.FeatureDescriptor in project whole by wholeplatform.
the class E4Utils method defineSelectionBindings.
public static void defineSelectionBindings(IBindingManager bm, List<IEntityPart> selectedEntityParts, IEntityPartViewer viewer) {
IEntity selectedEntities = BindingManagerFactory.instance.createTuple();
for (IEntityPart selectedEntityPart : selectedEntityParts) selectedEntities.wAdd(selectedEntityPart.getModelEntity());
if (viewer != null) {
bm.wDef("self", EntityUtils.getCompoundRoot(viewer.getEntityContents()));
bm.wDefValue("viewer", viewer);
IEntityPart focusEntityPart = viewer.getFocusEntityPart();
bm.wDef("focusEntity", focusEntityPart.getModelEntity());
}
bm.wDef("selectedEntities", selectedEntities);
IEntityIterator<IEntity> iterator = IteratorFactory.childIterator();
iterator.reset(selectedEntities);
if (iterator.hasNext()) {
IEntity focusEntity = iterator.next();
bm.wDef("primarySelectedEntity", focusEntity);
if (!bm.wIsSet("focusEntity"))
bm.wDef("focusEntity", focusEntity);
IEntityPart primarySelectedEntityPart = selectedEntityParts.get(0);
if (primarySelectedEntityPart instanceof IHilightable) {
final IHilightable hilightable = (IHilightable) primarySelectedEntityPart;
bm.wDefValue("hilightPosition", -1);
bm.wGet("hilightPosition").wAddRequestEventHandler(new IdentityRequestEventHandler() {
public int notifyRequested(IEntity source, FeatureDescriptor feature, int value) {
return hilightable.getHilightPosition();
}
});
}
if (primarySelectedEntityPart instanceof ITextualEntityPart) {
final ITextualEntityPart textualEntityPart = (ITextualEntityPart) primarySelectedEntityPart;
bm.wDefValue("selectedText", "");
bm.wGet("selectedText").wAddRequestEventHandler(new IdentityRequestEventHandler() {
public String notifyRequested(IEntity source, FeatureDescriptor feature, String value) {
return textualEntityPart.hasSelectionRange() ? DataTypeUtils.getAsPresentationString(textualEntityPart.getModelEntity()).substring(textualEntityPart.getSelectionStart(), textualEntityPart.getSelectionEnd()) : "";
}
});
}
}
}
use of org.whole.lang.reflect.FeatureDescriptor in project whole by wholeplatform.
the class WholeNodeEditPolicy method getReconnectTargetCommand.
protected Command getReconnectTargetCommand(ReconnectRequest request) {
FeatureDescriptor fd = getNodeEditPart().getTargetConnectionFeature(request);
if (fd == null)
return UnexecutableCommand.INSTANCE;
ConnectionReconnectCommand cmd = new ConnectionReconnectCommand(false);
cmd.setConnection((IEntity) request.getConnectionEditPart().getModel());
cmd.setNode(getNode());
cmd.setNodeFeature(fd);
return cmd;
}
use of org.whole.lang.reflect.FeatureDescriptor in project whole by wholeplatform.
the class WholeNodeEditPolicy method getReconnectSourceCommand.
protected Command getReconnectSourceCommand(ReconnectRequest request) {
FeatureDescriptor fd = getNodeEditPart().getSourceConnectionFeature(request);
if (fd == null)
return UnexecutableCommand.INSTANCE;
ConnectionReconnectCommand cmd = new ConnectionReconnectCommand(true);
cmd.setConnection((IEntity) request.getConnectionEditPart().getModel());
cmd.setNode(getNode());
cmd.setNodeFeature(fd);
return cmd;
}
use of org.whole.lang.reflect.FeatureDescriptor in project whole by wholeplatform.
the class WholeNodeEditPolicy method getConnectionCreateCommand.
protected Command getConnectionCreateCommand(CreateConnectionRequest request) {
FeatureDescriptor fd = getNodeEditPart().getSourceConnectionFeature(request);
if (fd == null)
return UnexecutableCommand.INSTANCE;
ConnectionCreateCommand cmd = new ConnectionCreateCommand();
cmd.setSource(getNode());
cmd.setSourceFeature(fd);
request.setStartCommand(cmd);
return cmd;
}
use of org.whole.lang.reflect.FeatureDescriptor in project whole by wholeplatform.
the class AbstractEntity method notifyRequested.
protected final float notifyRequested(float value) {
if (requestNotificationDisabled)
return value;
FeatureDescriptor fd = CommonsFeatureDescriptorEnum.data_value;
float result = wGetEntityRequestEventHandler().notifyRequested(this, fd, value);
return wGetCompoundRequestEventHandler().notifyRequested(this, fd, result);
}
Aggregations