Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: EMF backed Workbench (Was Re: [eclipse-incubator-e4-dev] Initial discussion on the 'modelled' workbench UI)

I personally also like to see a textual representation of the
metamodel. I attached the emfatic version of the metamodel.

BTW: with emfatic replacing Boolean with boolean and Integer with int
is a simple text replacement operation.....

I created a bug for this change:
  227552: Use booleans and int instead of Boolean and Integer in the EMF metamodel
  https://bugs.eclipse.org/bugs/show_bug.cgi?id=227552

Michael
@namespace(uri="http://www.eclipse.org/e4/presentation";, prefix="presentation")
package presentation;

abstract class EPresentationModelElement {
  attr String ~id;
}

class EWorkbench extends EPresentationModelElement {
}

abstract class EStyle {
  attr String font;
  attr int tabHeight;
  attr boolean simple;
  attr boolean tabsOnBottom;
  attr boolean border;
  attr boolean unselShowClose;
  attr boolean unselShowImage;
  attr String selStartColor;
  attr String selEndColor;
  attr String bgColor;
  attr String fgColor;
  attr Object bgImage;
  attr boolean showMinimize;
  attr boolean showMaximize;
}

class EGUIModelElement extends EPresentationModelElement, EStyle {
  attr EWidget widget;
  attr EWidgetState widgetState;
  attr String toolTip;
  attr boolean enabled;
  attr String label;
  attr Object image;
  attr String cssStyle;
  ref EStyleClass curCSS;
}

class EWorkbenchWindow extends EGUIModelElement {
  val EStyleClass[*] styles;
  val EPreference[*] preferences;
  val EWorkbenchPage page;
  attr Object factory;
}

class EWorkbenchPage extends EGUIModelElement {
  val EPerspective[*] perspectives;
}

class EPerspective extends EGUIModelElement {
  val EClientArea clientArea;
  val EMenu mainMenu;
  val EHTrim topTrim;
  val EHTrim bottomTrim;
  val EVTrim leftTrim;
  val EVTrim rightTrim;
}

class EHTrim extends EGUIModelElement {
}

class EVTrim extends EGUIModelElement {
}

class EClientArea extends EGUIModelElement {
  val ESash mainSash;
  val ETabbedStack activeView;
}

class ETabbedStack extends EGUIModelElement {
  val EPart[*] parts;
  attr String selTabId;
  attr int sashRatio;
  attr boolean maximized;
  attr boolean minimized;
}

class EToolBar extends EGUIModelElement {
}

class EToolItem extends EHTrim {
}

class EMenu extends EGUIModelElement {
}

class EMenuItem extends EGUIModelElement {
}

class ESeparator extends EGUIModelElement {
}

datatype EWidget : org.eclipse.swt.widgets.Widget;

enum EWidgetState {
  Invisible = 0;
  Latenr = 1;
  Visible = 2;
}

class EPreference extends EPresentationModelElement {
}

datatype EScopedPreferenceStore : org.eclipse.ui.preferences.ScopedPreferenceStore;

class ESash extends EGUIModelElement {
  attr boolean horizontal;
  val EGUIModelElement[*] subelements;
}

class EPart extends EGUIModelElement {
  attr boolean canClose;
}

class EViewPart extends EPart {
}

class EEditorPart extends EPart {
  attr Object editorReference;
}

class EStyleClass extends EStyle, EPresentationModelElement {
  ref EGUIModelElement[*] cssRefs;
}


Back to the top