Gelmiş geçmiş en büyük porno sitemiz olan 2pe de her zaman en kaliteli pornoları sunmayı hedefledik. Diğer video sitemiz olan vuam da ise hd porno ağırlıklı çalışmalara başladık.

  1. #1
    Sencha User
    Join Date
    Mar 2012
    Posts
    10
    Vote Rating
    0
    drkstr is on a distinguished road

      0  

    Default Unanswered: Best way to implement dynamic property access on a static type

    Unanswered: Best way to implement dynamic property access on a static type


    Hello Everyone,

    I need to implement a declarative command pattern that can update a value on a variety of static types, given a string value for the key. These types can be modified as needed to support the pattern, but need to be operated on in a generic way (IE. I can make all these types implement a common interface). Each type must react to changes made to these properties.

    Here is what I have so far:

    Code:
    public class Main implements EntryPoint{
        @Override
        public void onModuleLoad()
        {
        MyView view = new MyView();
    
    
        SetPropertyCommand command = new SetPropertyCommand();
        command.target = view;
        command.property = "text";
        command.value = "Hello World!";
    
    
        command.execute();
    
    
        RootPanel.get().add(view);
        
        GWT.log("text = " + view.getValue("text"), null);
        }
    }
    
    
    interface IValueTarget
    {
        public void setValue(String name, Object value);
        
        public Object getValue(String property);
    }
    
    
    class SetPropertyCommand
    {
        public String property;
        
        public IValueTarget target;
        
        public Object value;
    
    
        public void execute()
        {
        this.target.setValue(this.property, this.value);
        }
    }
    
    
    class MyView extends Html implements IValueTarget
    {
        
        private HashMap<String,Object> _properties = new HashMap<String,Object>();
        
        public void setValue(String name, Object value)
        {
        _properties.put(name, value);
        
        //gross!
        if (name == "text")
            setHtml((String) value);
        }
        
        public Object getValue(String property)
        {
        return _properties.get(property);
        }
    }
    This seems to work ok, but I really hate the idea idea of switching through a bunch of magic string values in every IValueTarget implementation (there are a lot of them, each with a unique set of properties that can be operated on in this manor).

    Is there a way to implement this with strong typing? I was looking at using the new ValueProvider functionality to expose these properties, but then I am still not sure how I would reference them using a String value, and react to changes when a value is set.

    Any guidance you can provide will be greatly appreciated.


    Thanks for your time!

  2. #2
    Sencha User
    Join Date
    Mar 2012
    Posts
    10
    Vote Rating
    0
    drkstr is on a distinguished road

      0  

    Default


    Just to clarify a bit, in Actionscript I would do this by putting the logic in getters and setters. This way, all the exposed properties would be included in the API documentation. In Java I could just name my get/set methods to match whatever string value should be used to reference it, and then grab a reference to it using the reflection API. But this doesn't appear to be an option in GWT.

    So I guess what my question is, is there any possible way to reference a method using a String, or do I need to implement a function in each of my types that switches through a string value and manually calls the appropriate function?

    Thanks again for your time!