[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
Re: [eclipse-incubator-e4-dev]	Initial	discussion	onthe'modelled'workbench	UI
 | 
Hi,
The final solution could look like this you are right but I'm trying to 
stay as close to Eric's current code as possible. The nice thing is once 
I have Eric's model transformed we can use refactoring and 
javac-compiler support (another reason why I'm not provideing the 
minimal EMFless API in the first draft) to easily rearrage the model.
I just need to get commit rights to the incubator :-) I could in the 
time until this happens open a bug and attach my projects there 
(although their are currently in a not runnable state nor they are the 
FINAL solution to the transformation so they should not be the reason to 
drop EMF).
Tom
yves.yang@xxxxxxxxxxx schrieb:
I don't know why EGUIElement inherites from EPresentationModelElement and
EStyle.
How about this:
                    EPresentationModelElement
                                ^
                                |
                    ---------------------------
                    |                         |
                    |                         |
              EGUIElement x------------>EStyleProvider
                                      0..1    ^
                                              |
                                      ECSSStyle, or others
yves
Hi,
In my current EricToTom-Transformation I've modeled it currently like
this:
EPresentationModelElement                  EStyle
    ^                                        ^ ^
    |                                        | |
    -----------------------------------------| |
                   |                           |
                   |                           |
             EGUIElement x------------> EStyleClass
                                   0..1
Tom
Yves YANG schrieb:
public class UIElement {
   private Style style;
   private class WrappedStyle extends Style {
       private HashMap ownMap = new HashMap();
       private WrappedStyle(Style style) {
           this.style = style;
       }
       public String get(String name) {
          if( ownMap.contains(name) ) {
             return ownMap.get(name);
          }
       }
       public void set(String name, String value) {
          ownMap.put(name,value);
       }
   }
   // Allows reading without the need to wrap
   public String getStyleAttribute(String name) {
       return style.get(name)
   }
   public String setStyleAttribute(String name, String value) {
       getStyle().set(name,value);
   }
   public Style getStyle() {
       if( !( style instanceof WrappedStyle ) ) {
           this.style = new WrappedStyle(this.style);
       }
       return style;
   }
}
In general, we have the same idea.
Here is what I suggest:
public class UIElement {
    private Style style;
    private HashMap ownMap = new HashMap();
    // Allows reading without the need to wrap
    public Object getValue(String name) {
	  if (ownMap.containsKey(name)) {
		return ownMap.get(name);
	  }
	  return getDefaultValue(name);
    }
    protected Object getDefaultValue (String name) {
	  if (style != null) {
		return style.get(name);
	  }
	  return null;
    }
    public Object getLocalValue(String name) {
       return ownMap.get(name);
    }
    public boolean hasLocalValue(String name) {
       return ownMap.containsKey(name);
    }
    public void unsetValue(String name) {
       ownMap.remove(name);
    }
    public void setValue(String name, Object value) {
        ownMap.set(name, value);
    }
    public Style getStyle() {
        return style;
    }
}
Style is subclass UIElement.
yves
_______________________________________________
eclipse-incubator-e4-dev mailing list
eclipse-incubator-e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
--
B e s t S o l u t i o n . a t                        EDV Systemhaus GmbH
------------------------------------------------------------------------
tom schindl                               leiter softwareentwicklung/CSO
------------------------------------------------------------------------
eduard-bodem-gasse 8/3    A-6020 innsbruck      phone    ++43 512 935834
_______________________________________________
eclipse-incubator-e4-dev mailing list
eclipse-incubator-e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
_______________________________________________
eclipse-incubator-e4-dev mailing list
eclipse-incubator-e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
--
B e s t S o l u t i o n . a t                        EDV Systemhaus GmbH
------------------------------------------------------------------------
tom schindl                               leiter softwareentwicklung/CSO
------------------------------------------------------------------------
eduard-bodem-gasse 8/3    A-6020 innsbruck      phone    ++43 512 935834