Package org.dyno.visual.swing.types.endec

Source Code of org.dyno.visual.swing.types.endec.ComboBoxModelWrapper


/************************************************************************************
* Copyright (c) 2008 William Chen.                                                 *
*                                                                                  *
* All rights reserved. This program and the accompanying materials are made        *
* available under the terms of the Eclipse Public License v1.0 which accompanies   *
* this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html *
*                                                                                  *
* Use is subject to the terms of Eclipse Public License v1.0.                      *
*                                                                                  *
* Contributors:                                                                    *
*     William Chen - initial API and implementation.                               *
************************************************************************************/

package org.dyno.visual.swing.types.endec;

import javax.swing.ComboBoxModel;

import org.dyno.visual.swing.base.ExtensionRegistry;
import org.dyno.visual.swing.base.TypeAdapter;
import org.dyno.visual.swing.plugin.spi.ICodeGen;
import org.eclipse.jdt.core.dom.rewrite.ImportRewrite;

/**
*
* @author William Chen
*/
public class ComboBoxModelWrapper implements ICodeGen {

  public ComboBoxModelWrapper() {
  }
 
  public String getJavaCode(Object value, ImportRewrite imports) {
    if(value==null)
      return "null";
    String className = imports.addImport("javax.swing.DefaultComboBoxModel");
    StringBuilder builder=new StringBuilder();
    builder.append("new "+className+"(new Object[]{\n");
    ComboBoxModel model = (ComboBoxModel)value;
    for(int i=0;i<model.getSize();i++){
      if(i!=0)
        builder.append(",");
      Object obj=model.getElementAt(i);
      if(obj==null){
        builder.append("null");
      }else{
        TypeAdapter adapter=ExtensionRegistry.getTypeAdapter(obj.getClass());
        if(adapter!=null&&adapter.getCodegen()!=null){
          builder.append(adapter.getCodegen().getJavaCode(obj, imports));
        }else{
          builder.append(obj.toString());
        }       
      }
    }
    builder.append("})");
    return builder.toString();
  }
 
  public String getInitJavaCode(Object value, ImportRewrite imports) {
    return null;
  }
}

TOP

Related Classes of org.dyno.visual.swing.types.endec.ComboBoxModelWrapper

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.