Browse Source
Merge in DESIGN/design from ~KERRY/design_10.0:feature/10.0 to feature/10.0 * commit 'cc4b438cfb65a96a21964a8b0f16fdf887495548': REPORT-52151 控件事件支持重命名开发feature/10.0
kerry
4 years ago
10 changed files with 777 additions and 176 deletions
@ -0,0 +1,41 @@ |
|||||||
|
package com.fr.design.gui.controlpane; |
||||||
|
|
||||||
|
import com.fr.form.event.Listener; |
||||||
|
import com.fr.general.NameObject; |
||||||
|
import org.easymock.EasyMock; |
||||||
|
import org.junit.Assert; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by kerry on 5/17/21 |
||||||
|
*/ |
||||||
|
public class ListControlPaneHelperTest { |
||||||
|
|
||||||
|
@Test |
||||||
|
public void testProcessCatalog() { |
||||||
|
ListControlPaneHelper helper = ListControlPaneHelper.newInstance(EasyMock.mock(ListControlPaneProvider.class)); |
||||||
|
List<NameObject> nameObjectList = new ArrayList<>(); |
||||||
|
Listener listener1 = new Listener(); |
||||||
|
listener1.setEventName("click"); |
||||||
|
Listener listener2 = new Listener(); |
||||||
|
listener2.setEventName("afterInit"); |
||||||
|
Listener listener3 = new Listener(); |
||||||
|
listener3.setEventName("click"); |
||||||
|
Listener listener4 = new Listener(); |
||||||
|
listener4.setEventName("afterInit"); |
||||||
|
listener4.setName("test"); |
||||||
|
nameObjectList.add(new NameObject("click", listener1)); |
||||||
|
nameObjectList.add(new NameObject("afterInit", listener2)); |
||||||
|
nameObjectList.add(new NameObject("click", listener3)); |
||||||
|
nameObjectList.add(new NameObject("afterInit", listener4)); |
||||||
|
Map<String, List<NameObject>> map = helper.processCatalog(nameObjectList); |
||||||
|
Assert.assertEquals(2, map.size()); |
||||||
|
Assert.assertEquals(2, map.get("afterInit").size()); |
||||||
|
Assert.assertEquals(2, map.get("click").size()); |
||||||
|
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,533 @@ |
|||||||
|
package com.fr.design.gui.controlpane; |
||||||
|
|
||||||
|
|
||||||
|
import com.fr.design.beans.BasicBeanPane; |
||||||
|
import com.fr.design.constants.UIConstants; |
||||||
|
import com.fr.design.designer.creator.XCreator; |
||||||
|
import com.fr.design.designer.properties.EventPropertyTable; |
||||||
|
import com.fr.design.gui.icontainer.UIScrollPane; |
||||||
|
import com.fr.design.gui.ilable.UILabel; |
||||||
|
import com.fr.design.gui.ilist.JNameEdList; |
||||||
|
import com.fr.design.gui.ilist.ListModelElement; |
||||||
|
import com.fr.design.gui.ilist.ModNameActionListener; |
||||||
|
import com.fr.design.gui.ilist.UINameEdList; |
||||||
|
import com.fr.design.i18n.Toolkit; |
||||||
|
import com.fr.design.layout.FRGUIPaneFactory; |
||||||
|
import com.fr.design.mainframe.FormDesigner; |
||||||
|
import com.fr.design.widget.EventCreator; |
||||||
|
import com.fr.form.event.Listener; |
||||||
|
import com.fr.form.ui.Widget; |
||||||
|
import com.fr.general.NameObject; |
||||||
|
import com.fr.report.web.util.ReportEngineEventMapping; |
||||||
|
import com.fr.stable.ArrayUtils; |
||||||
|
import com.fr.stable.Nameable; |
||||||
|
import javax.swing.BorderFactory; |
||||||
|
import javax.swing.DefaultListModel; |
||||||
|
import javax.swing.JPanel; |
||||||
|
import javax.swing.ListSelectionModel; |
||||||
|
import javax.swing.event.ListDataEvent; |
||||||
|
import javax.swing.event.ListDataListener; |
||||||
|
import javax.swing.event.ListSelectionEvent; |
||||||
|
import javax.swing.event.ListSelectionListener; |
||||||
|
import java.awt.BorderLayout; |
||||||
|
import java.awt.Color; |
||||||
|
import java.awt.Dimension; |
||||||
|
import java.awt.FlowLayout; |
||||||
|
import java.awt.event.MouseAdapter; |
||||||
|
import java.awt.event.MouseEvent; |
||||||
|
import java.lang.reflect.Constructor; |
||||||
|
import java.lang.reflect.InvocationTargetException; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.Iterator; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by kerry on 5/17/21 |
||||||
|
*/ |
||||||
|
public class EventPropertyPane extends UIControlPane implements ListControlPaneProvider { |
||||||
|
private XCreator creator; |
||||||
|
private boolean isPopulating = false; |
||||||
|
private UINameEdList selectNameEdList; |
||||||
|
|
||||||
|
private Map<String, EventListWrapperPane> nameEdListMap = new HashMap<>(); |
||||||
|
|
||||||
|
private CommonShortCutHandlers commonHandlers; |
||||||
|
|
||||||
|
private ListControlPaneHelper helper; |
||||||
|
|
||||||
|
private JPanel contentPane; |
||||||
|
|
||||||
|
private FormDesigner designer; |
||||||
|
|
||||||
|
|
||||||
|
private ListControlPaneHelper getHelper() { |
||||||
|
if (helper == null) { |
||||||
|
helper = ListControlPaneHelper.newInstance(this); |
||||||
|
} |
||||||
|
return helper; |
||||||
|
} |
||||||
|
|
||||||
|
private CommonShortCutHandlers getCommonHandlers() { |
||||||
|
if (commonHandlers == null) { |
||||||
|
commonHandlers = CommonShortCutHandlers.newInstance(this); |
||||||
|
} |
||||||
|
return commonHandlers; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public EventPropertyPane(FormDesigner designer) { |
||||||
|
super(); |
||||||
|
this.designer = designer; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
protected void initLeftPane(JPanel leftPane) { |
||||||
|
leftPane.add(new UIScrollPane(contentPane = FRGUIPaneFactory.createVerticalFlowLayout_Pane(true, FlowLayout.LEADING, 0, 0)), BorderLayout.CENTER); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 刷新 |
||||||
|
*/ |
||||||
|
public void refresh() { |
||||||
|
int selectionSize = designer.getSelectionModel().getSelection().size(); |
||||||
|
if (selectionSize == 0 || selectionSize == 1) { |
||||||
|
this.creator = selectionSize == 0 ? designer.getRootComponent() : designer.getSelectionModel() |
||||||
|
.getSelection().getSelectedCreator(); |
||||||
|
} else { |
||||||
|
this.creator = null; |
||||||
|
contentPane.removeAll(); |
||||||
|
checkButtonEnabled(); |
||||||
|
return; |
||||||
|
} |
||||||
|
Widget widget = creator.toData(); |
||||||
|
|
||||||
|
refreshContentPane(widget.supportedEvents()); |
||||||
|
refreshNameableCreator(EventCreator.createEventCreator(widget.supportedEvents(), EventPropertyTable.WidgetEventListenerUpdatePane.class)); |
||||||
|
populateNameObjects(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
private void refreshContentPane(String[] supportedEvents) { |
||||||
|
for (String event : supportedEvents) { |
||||||
|
if (nameEdListMap.containsKey(event)) { |
||||||
|
continue; |
||||||
|
} |
||||||
|
UINameEdList list = createJNameList(event); |
||||||
|
EventListWrapperPane wrapperPane = new EventListWrapperPane(switchLang(event), list); |
||||||
|
if (this.selectNameEdList == null) { |
||||||
|
this.selectNameEdList = wrapperPane.getNameEdList(); |
||||||
|
} |
||||||
|
contentPane.add(wrapperPane); |
||||||
|
nameEdListMap.put(event, wrapperPane); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void populateNameObjects() { |
||||||
|
Widget widget = creator.toData(); |
||||||
|
|
||||||
|
ArrayList<NameObject> nameObjectList = new ArrayList<>(); |
||||||
|
for (int i = 0, size = widget.getListenerSize(); i < size; i++) { |
||||||
|
Listener listener = widget.getListener(i); |
||||||
|
if (!listener.isDefault()) { |
||||||
|
nameObjectList.add(i, new NameObject(switchLang(listener.getEventName()) + (i + 1), listener)); |
||||||
|
} |
||||||
|
} |
||||||
|
populate(getHelper().processCatalog(nameObjectList)); |
||||||
|
checkButtonEnabled(); |
||||||
|
this.repaint(); |
||||||
|
} |
||||||
|
|
||||||
|
public void populate(Map<String, List<NameObject>> map) { |
||||||
|
isPopulating = true; // 加一个标识位,避免切换单元格时,触发 saveSettings
|
||||||
|
Iterator<Map.Entry<String, List<NameObject>>> iterator = map.entrySet().iterator(); |
||||||
|
while (iterator.hasNext()) { |
||||||
|
Map.Entry<String, List<NameObject>> entry = iterator.next(); |
||||||
|
List<NameObject> valueList = entry.getValue(); |
||||||
|
EventListWrapperPane eventListWrapperPane = nameEdListMap.get(entry.getKey()); |
||||||
|
populateChildNameList(eventListWrapperPane.getNameEdList(), valueList.toArray(new NameObject[valueList.size()])); |
||||||
|
} |
||||||
|
this.checkButtonEnabled(); |
||||||
|
refreshEventListWrapperPane(); |
||||||
|
isPopulating = false; |
||||||
|
} |
||||||
|
|
||||||
|
private void refreshEventListWrapperPane() { |
||||||
|
Iterator<Map.Entry<String, EventListWrapperPane>> iterator = nameEdListMap.entrySet().iterator(); |
||||||
|
while (iterator.hasNext()) { |
||||||
|
Map.Entry<String, EventListWrapperPane> entry = iterator.next(); |
||||||
|
EventListWrapperPane eventListWrapperPane = entry.getValue(); |
||||||
|
UINameEdList nameEdList = eventListWrapperPane.getNameEdList(); |
||||||
|
int listSize = nameEdList.getModel().getSize(); |
||||||
|
if (this.selectNameEdList.getModel().getSize() == 0 && listSize > 0) { |
||||||
|
this.selectNameEdList = nameEdList; |
||||||
|
} |
||||||
|
eventListWrapperPane.setVisible(listSize > 0); |
||||||
|
} |
||||||
|
this.selectNameEdList.setSelectedIndex(0); |
||||||
|
this.repaint(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
private void populateChildNameList(UINameEdList nameableList, Nameable[] nameableArray) { |
||||||
|
nameableList.getCellEditor().stopCellEditing(); |
||||||
|
DefaultListModel listModel = (DefaultListModel) nameableList.getModel(); |
||||||
|
listModel.removeAllElements(); |
||||||
|
if (ArrayUtils.isEmpty(nameableArray)) { |
||||||
|
isPopulating = false; |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
listModel.setSize(nameableArray.length); |
||||||
|
for (int i = 0; i < nameableArray.length; i++) { |
||||||
|
listModel.set(i, new ListModelElement(nameableArray[i])); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
protected UINameEdList createJNameList(String text) { |
||||||
|
UINameEdList nameEdList = new UINameEdList(new DefaultListModel()) { |
||||||
|
@Override |
||||||
|
protected void doAfterLostFocus() { |
||||||
|
((JControlUpdatePane) controlUpdatePane).update(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected void doAfterStopEditing() { |
||||||
|
saveSettings(); |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
nameEdList.setCellRenderer(new UINameableListCellRenderer(true, this.creators)); |
||||||
|
nameEdList.setName(text); |
||||||
|
nameEdList.setSelectionBackground(UIConstants.ATTRIBUTE_PRESS); |
||||||
|
nameEdList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); |
||||||
|
nameEdList.addMouseListener(getHelper().getListMouseListener(nameEdList, this)); |
||||||
|
nameEdList.addMouseListener(new MouseAdapter() { |
||||||
|
@Override |
||||||
|
public void mouseClicked(MouseEvent e) { |
||||||
|
selectNameEdList = nameEdList; |
||||||
|
updateUINameListSelect(); |
||||||
|
} |
||||||
|
}); |
||||||
|
nameEdList.addModNameActionListener(new ModNameActionListener() { |
||||||
|
@Override |
||||||
|
public void nameModed(int index, String oldName, String newName) { |
||||||
|
saveSettings(); |
||||||
|
} |
||||||
|
}); |
||||||
|
nameEdList.addListSelectionListener(new ListSelectionListener() { |
||||||
|
public void valueChanged(ListSelectionEvent evt) { |
||||||
|
// richie:避免多次update和populate大大降低效率
|
||||||
|
if (!evt.getValueIsAdjusting() && !isPopulating) { |
||||||
|
// shoc 切换的时候加检验
|
||||||
|
if (hasInvalid(false)) { |
||||||
|
return; |
||||||
|
} |
||||||
|
((JControlUpdatePane) EventPropertyPane.this.controlUpdatePane).update(); |
||||||
|
((JControlUpdatePane) EventPropertyPane.this.controlUpdatePane).populate(); |
||||||
|
EventPropertyPane.this.checkButtonEnabled(); |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
nameEdList.getModel().addListDataListener(new ListDataListener() { |
||||||
|
@Override |
||||||
|
public void intervalAdded(ListDataEvent e) { |
||||||
|
saveSettings(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void intervalRemoved(ListDataEvent e) { |
||||||
|
saveSettings(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void contentsChanged(ListDataEvent e) { |
||||||
|
saveSettings(); |
||||||
|
} |
||||||
|
}); |
||||||
|
return nameEdList; |
||||||
|
} |
||||||
|
|
||||||
|
private void updateUINameListSelect() { |
||||||
|
Iterator<Map.Entry<String, EventListWrapperPane>> iterator = nameEdListMap.entrySet().iterator(); |
||||||
|
while (iterator.hasNext()) { |
||||||
|
Map.Entry<String, EventListWrapperPane> entry = iterator.next(); |
||||||
|
UINameEdList nameEdList = entry.getValue().getNameEdList(); |
||||||
|
if (nameEdList != selectNameEdList) { |
||||||
|
nameEdList.clearSelection(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void checkButtonEnabled() { |
||||||
|
getHelper().checkButtonEnabled(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private String switchLang(String eventName) { |
||||||
|
// 在 properties 文件中找到相应的 key 值
|
||||||
|
String localeKey = ReportEngineEventMapping.getLocaleName(eventName); |
||||||
|
return com.fr.design.i18n.Toolkit.i18nText(localeKey); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 更新控件事件 |
||||||
|
* |
||||||
|
* @param creator 控件 |
||||||
|
*/ |
||||||
|
public void updateWidgetListener(XCreator creator) { |
||||||
|
(creator.toData()).clearListeners(); |
||||||
|
Nameable[] res = this.update(); |
||||||
|
for (int i = 0; i < res.length; i++) { |
||||||
|
NameObject nameObject = (NameObject) res[i]; |
||||||
|
(creator.toData()).addListener((Listener) nameObject.getObject()); |
||||||
|
} |
||||||
|
|
||||||
|
designer.fireTargetModified(); |
||||||
|
checkButtonEnabled(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 生成不重复的名字 |
||||||
|
* |
||||||
|
* @param prefix 名字前缀 |
||||||
|
* @return 名字 |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public String createUnrepeatedName(String prefix) { |
||||||
|
return getCommonHandlers().createUnrepeatedName(prefix); |
||||||
|
} |
||||||
|
|
||||||
|
private void updateSelectedNameList(NameableCreator creator) { |
||||||
|
String eventName = ((EventCreator) creator).getEventName(); |
||||||
|
EventListWrapperPane wrapperPane = nameEdListMap.get(eventName); |
||||||
|
wrapperPane.setVisible(true); |
||||||
|
setSelectNameEdList(wrapperPane.getNameEdList()); |
||||||
|
} |
||||||
|
|
||||||
|
private void setSelectNameEdList(UINameEdList nameEdList) { |
||||||
|
if (this.selectNameEdList != null) { |
||||||
|
this.selectNameEdList.clearSelection(); |
||||||
|
} |
||||||
|
this.selectNameEdList = nameEdList; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onAddItem(NameableCreator creator) { |
||||||
|
updateSelectedNameList(creator); |
||||||
|
getCommonHandlers().onAddItem(creator); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onRemoveItem() { |
||||||
|
getCommonHandlers().onRemoveItem(); |
||||||
|
refreshEventListWrapperPane(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onCopyItem() { |
||||||
|
getCommonHandlers().onCopyItem(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onMoveUpItem() { |
||||||
|
getCommonHandlers().onMoveUpItem(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onMoveDownItem() { |
||||||
|
getCommonHandlers().onMoveDownItem(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onSortItem(boolean isAtoZ) { |
||||||
|
Iterator<Map.Entry<String, EventListWrapperPane>> iterator = nameEdListMap.entrySet().iterator(); |
||||||
|
while (iterator.hasNext()) { |
||||||
|
Map.Entry<String, EventListWrapperPane> entry = iterator.next(); |
||||||
|
UINameEdList nameEdList = entry.getValue().getNameEdList(); |
||||||
|
getCommonHandlers().onSortItem(isAtoZ, nameEdList); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isItemSelected() { |
||||||
|
return getModel().getSize() > 0 && getSelectedIndex() != -1; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
protected JPanel createControlUpdatePane() { |
||||||
|
return JControlUpdatePane.newInstance(this); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public Nameable[] update() { |
||||||
|
java.util.List<Nameable> res = new java.util.ArrayList<Nameable>(); |
||||||
|
getControlUpdatePane().update(); |
||||||
|
Iterator<Map.Entry<String, EventListWrapperPane>> iterator = nameEdListMap.entrySet().iterator(); |
||||||
|
while (iterator.hasNext()) { |
||||||
|
Map.Entry<String, EventListWrapperPane> entry = iterator.next(); |
||||||
|
UINameEdList nameEdList = entry.getValue().getNameEdList(); |
||||||
|
DefaultListModel listModel = (DefaultListModel) nameEdList.getModel(); |
||||||
|
for (int i = 0, len = listModel.getSize(); i < len; i++) { |
||||||
|
res.add(((ListModelElement) listModel.getElementAt(i)).wrapper); |
||||||
|
} |
||||||
|
} |
||||||
|
return res.toArray(new Nameable[0]); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public NameableCreator[] createNameableCreators() { |
||||||
|
return new NameableCreator[]{ |
||||||
|
new EventCreator(Widget.EVENT_STATECHANGE, EventPropertyTable.WidgetEventListenerUpdatePane.class) |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void saveSettings() { |
||||||
|
if (isPopulating) { |
||||||
|
return; |
||||||
|
} |
||||||
|
updateWidgetListener(creator); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected String title4PopupWindow() { |
||||||
|
return "Event"; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getAddItemText() { |
||||||
|
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Add_Event"); |
||||||
|
} |
||||||
|
|
||||||
|
public BasicBeanPane createPaneByCreators(NameableCreator creator) { |
||||||
|
try { |
||||||
|
return creator.getUpdatePane().newInstance(); |
||||||
|
} catch (InstantiationException e) { |
||||||
|
throw new RuntimeException(e); |
||||||
|
} catch (IllegalAccessException e) { |
||||||
|
throw new RuntimeException(e); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public BasicBeanPane createPaneByCreators(NameableCreator creator, String string) { |
||||||
|
Constructor constructor = null; |
||||||
|
try { |
||||||
|
constructor = creator.getUpdatePane().getDeclaredConstructor(new Class[]{String.class}); |
||||||
|
constructor.setAccessible(true); |
||||||
|
return (BasicBeanPane) constructor.newInstance(string); |
||||||
|
} catch (NoSuchMethodException e) { |
||||||
|
throw new RuntimeException(e); |
||||||
|
} catch (InstantiationException e) { |
||||||
|
throw new RuntimeException(e); |
||||||
|
} catch (IllegalAccessException e) { |
||||||
|
throw new RuntimeException(e); |
||||||
|
} catch (InvocationTargetException e) { |
||||||
|
throw new RuntimeException(e); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public DefaultListModel getModel() { |
||||||
|
if (this.selectNameEdList == null) { |
||||||
|
return new DefaultListModel(); |
||||||
|
} |
||||||
|
return (DefaultListModel) this.selectNameEdList.getModel(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 检查是否符合规范 |
||||||
|
* |
||||||
|
* @throws Exception |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public void checkValid() throws Exception { |
||||||
|
((JControlUpdatePane) this.controlUpdatePane).checkValid(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean hasInvalid(boolean isAdd) { |
||||||
|
return getHelper().hasInvalid(isAdd); |
||||||
|
} |
||||||
|
|
||||||
|
public void addNameable(Nameable nameable, int index) { |
||||||
|
getHelper().addNameable(nameable, index); |
||||||
|
popupEditDialog(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 设置选中项 |
||||||
|
* |
||||||
|
* @param index 选中项的序列号 |
||||||
|
*/ |
||||||
|
public void setSelectedIndex(int index) { |
||||||
|
if (this.selectNameEdList != null) { |
||||||
|
this.selectNameEdList.setSelectedIndex(index); |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getSelectedIndex() { |
||||||
|
if (this.selectNameEdList == null) { |
||||||
|
return -1; |
||||||
|
} |
||||||
|
return this.selectNameEdList.getSelectedIndex(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public ListModelElement getSelectedValue() { |
||||||
|
if (this.selectNameEdList == null) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
return (ListModelElement) this.selectNameEdList.getSelectedValue(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public JControlUpdatePane getControlUpdatePane() { |
||||||
|
return (JControlUpdatePane) controlUpdatePane; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public JNameEdList getNameableList() { |
||||||
|
return this.selectNameEdList; |
||||||
|
} |
||||||
|
|
||||||
|
private void popupEditDialog() { |
||||||
|
getHelper().popupEditDialog(null, this.selectNameEdList, this); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
private class EventListWrapperPane extends JPanel { |
||||||
|
private UINameEdList nameEdList; |
||||||
|
|
||||||
|
public EventListWrapperPane(String labelText, UINameEdList nameEdList) { |
||||||
|
this.setLayout(FRGUIPaneFactory.createBorderLayout()); |
||||||
|
UILabel label = new UILabel(labelText + Toolkit.i18nText("Fine-Design_Report_Event")); |
||||||
|
label.setBorder(BorderFactory.createEmptyBorder(0, 8, 0, 0)); |
||||||
|
label.setBackground(Color.decode("#FFFFFF")); |
||||||
|
label.setPreferredSize(new Dimension(226, 26)); |
||||||
|
this.nameEdList = nameEdList; |
||||||
|
this.add(label, BorderLayout.NORTH); |
||||||
|
this.add(this.nameEdList, BorderLayout.CENTER); |
||||||
|
} |
||||||
|
|
||||||
|
public UINameEdList getNameEdList() { |
||||||
|
return this.nameEdList; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue