use of org.whole.lang.commons.model.RootFragment in project whole by wholeplatform.
the class RootFragmentPart method createFigure.
protected IFigure createFigure() {
// Figure f = new FreeformLayer() {
IEntityFigure f = new EntityFigure() {
{
setOpaque(false);
}
@Override
public void paint(Graphics graphics) {
graphics.setAdvanced(true);
graphics.setAntialias(SWT.ON);
super.paint(graphics);
}
protected void paintFigure(Graphics graphics) {
super.paintFigure(graphics);
Rectangle r2 = ((IFigure) getChildren().get(0)).getBounds();
translateToParent(r2 = r2.getCopy());
Rectangle clipArea = graphics.getClip(new Rectangle()).expand(1, 1);
graphics.fillRectangle(clipArea);
graphics.setBackgroundColor(FigureConstants.hostLanguageColor);
graphics.fillRectangle(clipArea.intersect(r2));
graphics.setLineWidth(1);
graphics.setLineStyle(Graphics.LINE_SOLID);
graphics.setXORMode(false);
IEntity rootEntity = ((RootFragment) getModelEntity()).getRootEntity().wGetAdaptee(false);
if (rootEntity.wGetParent() instanceof RootFragment) {
clipArea = graphics.getClip(new Rectangle()).expand(1, 1);
int oldAlpha = graphics.getAlpha();
graphics.setAlpha(60);
graphics.setForegroundColor(ColorConstants.darkGray);
graphics.setLineWidth(1);
graphics.drawRectangle(r2.getTranslated(-1, -1).resize(1, 1));
graphics.setForegroundColor(ColorConstants.lightGray);
graphics.setLineWidth(5);
graphics.drawRoundRectangle(r2.getTranslated(-4, -4).resize(7, 7), 10, 10);
graphics.setAlpha(oldAlpha);
} else {
graphics.setForegroundColor(ColorConstants.lightGray);
graphics.drawRectangle(r2.x - 1, r2.y - 1, r2.width + 1, r2.height + 1);
}
}
public void validate() {
super.validate();
repaint();
}
};
f.setLayoutManager(new StackLayout().withMargin(5).withMinorAlignment(Alignment.CENTER));
f.setBackgroundColor(FigureUtilities.lighter(ColorConstants.gray));
f.setOpaque(false);
f.addLayoutListener(LayoutAnimator.getDefault());
return f;
}
use of org.whole.lang.commons.model.RootFragment in project whole by wholeplatform.
the class E4GraphicalViewer method rebuildNotation.
public void rebuildNotation() {
RootFragment rootFragment = (RootFragment) getContents().getModel();
rebuildNotation(rootFragment);
}
use of org.whole.lang.commons.model.RootFragment in project whole by wholeplatform.
the class E4TreeViewer method rebuildNotation.
public void rebuildNotation() {
RootFragment rootFragment = (RootFragment) getContents().getModel();
// FIXME should be rebuildNotation(rootFragment)
rebuildNotation(rootFragment.getRootEntity().wGetAdaptee(true));
}
use of org.whole.lang.commons.model.RootFragment in project whole by wholeplatform.
the class AbstractE4Part method save.
@Persist
public void save() {
if (modelInput != null) {
workspace.removeResourceChangeListener(resourceListener);
IPersistenceProvider pp = modelInput.getPersistenceProvider();
try {
RootFragment rootFragment = (RootFragment) viewer.getContents().getModel();
modelInput.getPersistenceKit().writeModel(rootFragment.wGetRoot(), pp);
viewer.getCommandStack().markSaveLocation();
part.setDirty(false);
} catch (Exception e) {
} finally {
workspace.addResourceChangeListener(resourceListener);
}
}
}
use of org.whole.lang.commons.model.RootFragment in project whole by wholeplatform.
the class E4FindReplaceDialog method doReplace.
protected void doReplace(boolean updateSelection) {
if (!hasFoundEntity())
return;
final RootFragment replacementWrapper = CommonsEntityFactory.instance.createRootFragment(EntityUtils.clone(replaceViewer.getEntityContents()).wGetAdapter(CommonsEntityDescriptorEnum.Any));
Matcher.substitute(replacementWrapper.getRootEntity(), bindings, false);
ModelTransactionCommand command = new ModelTransactionCommand();
try {
command.setModel(getFoundEntity());
command.begin();
iterator.set(EntityUtils.remove(replacementWrapper.getRootEntity()));
command.commit();
} catch (Exception e) {
command.rollbackIfNeeded();
} finally {
clearFoundEntity();
}
IEntityPartViewer viewer = (IEntityPartViewer) selection.wGetValue("viewer");
viewer.getCommandStack().execute(command);
if (updateSelection) {
Control control = viewer.getControl();
control.getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
boolean state = enableSelectionTracking(false);
selectAndReveal(replacementWrapper);
enableSelectionTracking(state);
}
});
}
}
Aggregations