import com.intellij.ui.components.JBList; //导入方法依赖的package包/类
public NamedObjectPanel(@NotNull Project project, @NotNull String moduleName, @NotNull BuildFileKey buildFileKey,
@NotNull String newItemName, @NotNull PanelGroup panelGroup) {
super(project, moduleName);
myBuildFileKey = buildFileKey;
myNewItemName = newItemName;
myPanelGroup = panelGroup;
myListModel = new SortedListModel();
myObjectName.getDocument().addDocumentListener(this);
myList = new JBList();
myList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
myList.addListSelectionListener(this);
myList.setModel(myListModel);
myList.setCellRenderer(new DefaultListCellRenderer() {
@Override
public Component getListCellRendererComponent(JList jList, Object o, int i, boolean b, boolean b2) {
return super.getListCellRendererComponent(jList, ((NamedObject)o).getName(), i, b, b2);
}
});
ToolbarDecorator decorator = ToolbarDecorator.createDecorator(myList);
decorator.setAddAction(new AnActionButtonRunnable() {
@Override
public void run(AnActionButton button) {
updateCurrentObjectFromUi();
addObject();
}
});
decorator.setRemoveAction(new AnActionButtonRunnable() {
@Override
public void run(AnActionButton anActionButton) {
removeObject();
}
});
decorator.setRemoveActionUpdater(new AnActionButtonUpdater() {
@Override
public boolean isEnabled(AnActionEvent e) {
NamedObject selectedObject = getSelectedObject();
return selectedObject != null && !(selectedObject instanceof UndeletableNamedObject);
}
});
decorator.disableUpDownActions();
mySplitPane.setLeftComponent(decorator.createPanel());
mySplitPane.setDividerLocation(200);
myRightPane.setBorder(IdeBorderFactory.createBorder());
myNameWarning.setForeground(JBColor.RED);
}