Package org.dyno.visual.swing.parser.adapters

Source Code of org.dyno.visual.swing.parser.adapters.WidgetPropertyParser

package org.dyno.visual.swing.parser.adapters;

import java.awt.Component;

import org.dyno.visual.swing.base.WidgetProperty;
import org.dyno.visual.swing.parser.spi.IPropertyCodeGenerator;
import org.dyno.visual.swing.plugin.spi.IAdaptableContext;
import org.dyno.visual.swing.plugin.spi.ICodeGen;
import org.dyno.visual.swing.plugin.spi.WidgetAdapter;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jdt.core.dom.rewrite.ImportRewrite;

public class WidgetPropertyParser implements IPropertyCodeGenerator, IAdaptableContext {
  private WidgetProperty property;
 
  public String getJavaCode(Object bean, ImportRewrite imports) {
    if (bean instanceof Component) {
      Component comp = (Component) bean;
      WidgetAdapter adapter = WidgetAdapter.getWidgetAdapter(comp);
      if (adapter != null) {
        StringBuilder builder = new StringBuilder();
        Object value = property.getFieldValue(bean);
        ICodeGen gen = property.getCodeGenerator();
        if (gen != null && value != null) {
          String initCode = gen.getInitJavaCode(value, imports);
          if (initCode != null)
            builder.append(initCode);
        }
        if (!adapter.isRoot()) {
          String name = adapter.getID();
          builder.append(name + ".");
        }
        String code;
        if (gen != null) {
          code = value == null ? "null" : gen.getJavaCode(value, imports);
        } else {
          code = value == null ? "null" : value.toString();
        }
        if (code != null) {
          builder.append(property.getSetName() + "(");
          builder.append(code);
          builder.append(");\n");
        }
        return builder.toString();
      } else
        return null;
    } else
      return null;
  }
 
  public void setAdaptable(IAdaptable adaptable) {
    this.property = (WidgetProperty) adaptable;
  }

}
TOP

Related Classes of org.dyno.visual.swing.parser.adapters.WidgetPropertyParser

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.