帆软报表设计器源代码。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

61 lines
2.0 KiB

package com.fr.design.widget;
import com.fr.design.gui.controlpane.JListControlPane;
import com.fr.design.gui.controlpane.NameObjectCreator;
import com.fr.design.gui.controlpane.NameableCreator;
import com.fr.design.gui.core.WidgetConstants;
import com.fr.form.ui.UserDefinedWidgetConfig;
import com.fr.form.ui.WidgetConfig;
import com.fr.form.ui.WidgetManagerProvider;
import com.fr.general.NameObject;
import com.fr.stable.Nameable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Widget配置面板
*/
public class WidgetConfigPane extends JListControlPane {
/**
* 创建用户自定义widget组件
*
* @return 组件面板
*/
public NameableCreator[] createNameableCreators() {
NameableCreator defaultWidget = new NameObjectCreator(WidgetConstants.USER_DEFINED_WIDGETCONFIG,
"/com/fr/design/images/data/user_widget.png", UserDefinedWidgetConfig.class,
UserDefinedWidgetConfigPane.class);
return new NameableCreator[] { defaultWidget };
}
@Override
protected String title4PopupWindow() {
return "config";
}
public void populate(WidgetManagerProvider widgetManager){
Iterator<String> nameIt = widgetManager.getWidgetConfigNameIterator();
List<NameObject> nameObjectList = new ArrayList<NameObject>();
while (nameIt.hasNext()) {
String name = nameIt.next();
nameObjectList.add(new NameObject(name, widgetManager.getWidgetConfig(name)));
}
this.populate(nameObjectList.toArray(new NameObject[nameObjectList.size()]));
}
public void update(WidgetManagerProvider widgetManager){
Nameable[] res = this.update();
NameObject[] res_array = new NameObject[res.length];
java.util.Arrays.asList(res).toArray(res_array);
widgetManager.clearAllWidgetConfig();
for (int i = 0; i < res_array.length; i++) {
NameObject nameObject = res_array[i];
widgetManager.putWidgetConfig(nameObject.getName(),(WidgetConfig) nameObject.getObject());
}
}
}