package com.ramussoft.idef0; import java.text.Collator; import java.util.Collections; import java.util.Comparator; import java.util.List; import javax.swing.AbstractListModel; import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import com.dsoft.pb.idef.ResourceLoader; import com.ramussoft.common.Qualifier; import com.ramussoft.gui.common.BaseDialog; import com.ramussoft.gui.common.GUIFramework; import com.ramussoft.gui.common.GlobalResourcesManager; import com.ramussoft.gui.common.prefrence.Options; public class SelectBaseFunctionDialog extends BaseDialog { private JList list = new JList(); private Qualifier result; public SelectBaseFunctionDialog(GUIFramework framework) { super(framework.getMainFrame(), true); setTitle(GlobalResourcesManager.getString("SelectModel")); result = null; final List<Qualifier> base = IDEF0Plugin.getBaseQualifiers(framework .getEngine()); Collections.sort(base, new Comparator<Qualifier>() { private Collator collator = Collator.getInstance(); @Override public int compare(Qualifier o1, Qualifier o2) { return collator.compare(o1.getName(), o2.getName()); } }); list.setModel(new AbstractListModel() { @Override public Object getElementAt(int index) { return base.get(index); } @Override public int getSize() { return base.size(); } }); JScrollPane pane = new JScrollPane(); pane.setViewportView(list); setMainPane(pane); pack(); setMinimumSize(getSize()); setLocationRelativeTo(null); Options.loadOptions(this); } @Override protected void onOk() { Options.saveOptions(this); result = (Qualifier) list.getSelectedValue(); if (result == null) { JOptionPane.showMessageDialog(this, ResourceLoader .getString("select_model_first")); } else super.onOk(); } public Qualifier getResult() { return result; } }