package com.huaan.sale.common.basic;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import org.apache.wicket.Component;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.model.IModel;
public class RefInstance {
public static Component newInstance(String url,String id){
Component result = null;
try {
Constructor ct = Class.forName(url).getConstructor(String.class);
result = (Component)ct.newInstance(id);
result.setOutputMarkupId(true);
} catch (Throwable e) {
e.printStackTrace();
}
return result;
}
public static Component newInstance(String url,String id,IModel model){
Component result = null;
try {
Constructor ct = Class.forName(url).getConstructor(String.class,IModel.class);
result = (Component)ct.newInstance(id,model);
result.setOutputMarkupId(true);
} catch (Throwable e) {
e.printStackTrace();
}
return result;
}
public static Component newInstance(String url,String id,IModel model,ModalWindow window){
Component result = null;
try {
Constructor ct = Class.forName(url).getConstructor(String.class,IModel.class,ModalWindow.class);
result = (Component)ct.newInstance(id,model,window);
result.setOutputMarkupId(true);
}catch (Throwable e) {
e.printStackTrace();
}
return result;
}
public static Component newInstance(String url,String id,Object[] args){
Component result = null;
try {
Class[] argsClass = new Class[args.length];
for (int i = 0, j = args.length; i < j; i++){
argsClass[i] = args[i].getClass();
}
Constructor ct = Class.forName(url).getConstructor(argsClass);
result = (Component)ct.newInstance(id,args);
result.setOutputMarkupId(true);
} catch (Throwable e) {
e.printStackTrace();
}
return result;
}
}