private void fillList(final HighlightSeverity severity) { DefaultListModel model = new DefaultListModel(); model.removeAllElements(); final List<SeverityBasedTextAttributes> infoTypes = new ArrayList<SeverityBasedTextAttributes>(); infoTypes.addAll(SeverityUtil.getRegisteredHighlightingInfoTypes(mySeverityRegistrar)); Collections.sort( infoTypes, new Comparator<SeverityBasedTextAttributes>() { @Override public int compare( SeverityBasedTextAttributes attributes1, SeverityBasedTextAttributes attributes2) { return -mySeverityRegistrar.compare( attributes1.getSeverity(), attributes2.getSeverity()); } }); SeverityBasedTextAttributes preselection = null; for (SeverityBasedTextAttributes type : infoTypes) { model.addElement(type); if (type.getSeverity().equals(severity)) { preselection = type; } } myOptionsList.setModel(model); myOptionsList.setSelectedValue(preselection, true); }
private void addCreatedSdk(@Nullable final Sdk sdk, boolean newVirtualEnv) { if (sdk != null) { final PySdkService sdkService = PySdkService.getInstance(); sdkService.restoreSdk(sdk); boolean isVirtualEnv = PythonSdkType.isVirtualEnv(sdk); if (isVirtualEnv && !newVirtualEnv) { AddVEnvOptionsDialog dialog = new AddVEnvOptionsDialog(myMainPanel); dialog.show(); if (dialog.getExitCode() != DialogWrapper.OK_EXIT_CODE) { return; } SdkModificator modificator = myModificators.get(sdk); setSdkAssociated(modificator, !dialog.makeAvailableToAll()); myModifiedModificators.add(modificator); } final Sdk oldSdk = myProjectSdksModel.findSdk(sdk); if (oldSdk == null) { myProjectSdksModel.addSdk(sdk); } refreshSdkList(); mySdkList.setSelectedValue(myProjectSdksModel.findSdk(sdk.getName()), true); mySdkListChanged = true; } }
@NotNull public static <T extends PsiElement> JBPopup getPsiElementPopup( @NotNull T[] elements, @NotNull final PsiElementListCellRenderer<T> renderer, @Nullable final String title, @NotNull final PsiElementProcessor<T> processor, @Nullable final T selection) { final JList list = new JBListWithHintProvider(elements) { @Nullable @Override protected PsiElement getPsiElementForHint(Object selectedValue) { return (PsiElement) selectedValue; } }; list.setCellRenderer(renderer); list.setFont(EditorUtil.getEditorFont()); if (selection != null) { list.setSelectedValue(selection, true); } final Runnable runnable = () -> { int[] ids = list.getSelectedIndices(); if (ids == null || ids.length == 0) return; for (Object element : list.getSelectedValues()) { if (element != null) { processor.execute((T) element); } } }; PopupChooserBuilder builder = new PopupChooserBuilder(list); if (title != null) { builder.setTitle(title); } renderer.installSpeedSearch(builder, true); JBPopup popup = builder.setItemChoosenCallback(runnable).createPopup(); builder.getScrollPane().setBorder(null); builder.getScrollPane().setViewportBorder(null); return popup; }
private void refreshSdkList() { final List<Sdk> pythonSdks = myInterpreterList.getAllPythonSdks(myProject); Sdk projectSdk = getSdk(); if (!myShowOtherProjectVirtualenvs) { VirtualEnvProjectFilter.removeNotMatching(myProject, pythonSdks); } //noinspection unchecked mySdkList.setModel(new CollectionListModel<Sdk>(pythonSdks)); mySdkListChanged = false; if (projectSdk != null) { projectSdk = myProjectSdksModel.findSdk(projectSdk.getName()); mySdkList.clearSelection(); mySdkList.setSelectedValue(projectSdk, true); mySdkList.updateUI(); } }
public EtatPanelDist( Hashtable uneHashtable, BoiteChangementEtatSommetDist parent, String defaultValue) { ardoise = new EtatArdoiseDist(uneHashtable, parent); Vector listeItems = new Vector(); JList liste = new JList(); JScrollPane listeAvecAscenseur; listeItems.addElement("A"); listeItems.addElement("B"); listeItems.addElement("C"); listeItems.addElement("D"); listeItems.addElement("E"); listeItems.addElement("F"); listeItems.addElement("G"); listeItems.addElement("H"); listeItems.addElement("I"); listeItems.addElement("J"); listeItems.addElement("K"); listeItems.addElement("L"); listeItems.addElement("M"); listeItems.addElement("N"); listeItems.addElement("O"); listeItems.addElement("P"); listeItems.addElement("Q"); listeItems.addElement("R"); listeItems.addElement("S"); listeItems.addElement("T"); listeItems.addElement("U"); listeItems.addElement("V"); listeItems.addElement("W"); listeItems.addElement("X"); listeItems.addElement("Y"); listeItems.addElement("Z"); liste = new JList(listeItems); liste.setSelectedValue(defaultValue, true); ardoise.changerEtat((String) liste.getSelectedValue()); liste.addListSelectionListener(this); setLayout(new FlowLayout(FlowLayout.RIGHT, 5, 5)); add(ardoise); listeAvecAscenseur = new JScrollPane(liste); listeAvecAscenseur.setPreferredSize(new Dimension(200, 80)); add(listeAvecAscenseur); setVisible(true); }
/** Set view selection to user's choice. */ public void setSelect() throws DatabaseException { JList list = getList(); View original = null; View view = null; long id = _collection.getDatabase().getCurrentSetting().getViewID(); if (id != -1) { for (int i = 0; i < list.getModel().getSize(); i++) { View vw = (View) list.getModel().getElementAt(i); if (id == vw.getID()) { view = vw; break; } else if (vw.getName().equals("Original")) { original = view; } } } // default Original if (view == null) view = original; list.setSelectedValue(view, true); MainFrame.getInstance().updateStatus(); }
private void showCompletionPopup( final CompletionResult result, int position, boolean isExplicit) { if (myList == null) { myList = new JBList(); myList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); myList.setCellRenderer( new GroupedItemsListRenderer( new ListItemDescriptor() { public String getTextFor(final Object value) { final LookupFile file = (LookupFile) value; if (file.getMacro() != null) { return file.getMacro(); } else { return (myCurrentCompletion != null && myCurrentCompletion.myKidsAfterSeparator.contains(file) ? myFinder.getSeparator() : "") + file.getName(); } } public String getTooltipFor(final Object value) { return null; } public Icon getIconFor(final Object value) { final LookupFile file = (LookupFile) value; return file.getIcon(); } @Nullable private Separator getSeparatorAboveOf(Object value) { if (myCurrentCompletion == null) return null; final LookupFile file = (LookupFile) value; final int fileIndex = myCurrentCompletion.myToComplete.indexOf(file); if (fileIndex > 0 && !myCurrentCompletion.myMacros.contains(file)) { final LookupFile prev = myCurrentCompletion.myToComplete.get(fileIndex - 1); if (myCurrentCompletion.myMacros.contains(prev)) { return new Separator(""); } } if (myCurrentCompletion.myKidsAfterSeparator.indexOf(file) == 0 && myCurrentCompletion.mySiblings.size() > 0) { final LookupFile parent = file.getParent(); return parent == null ? new Separator("") : new Separator(parent.getName()); } if (myCurrentCompletion.myMacros.size() > 0 && fileIndex == 0) { return new Separator( IdeBundle.message("file.chooser.completion.path.variables.text")); } return null; } public boolean hasSeparatorAboveOf(final Object value) { return getSeparatorAboveOf(value) != null; } public String getCaptionAboveOf(final Object value) { final FileTextFieldImpl.Separator separator = getSeparatorAboveOf(value); return separator != null ? separator.getText() : null; } })); } if (myCurrentPopup != null) { closePopup(); } myCurrentCompletion = result; myCurrentCompletionsPos = position; if (myCurrentCompletion.myToComplete.size() == 0) { showNoSuggestions(isExplicit); return; } myList.setModel( new AbstractListModel() { public int getSize() { return myCurrentCompletion.myToComplete.size(); } public Object getElementAt(final int index) { return myCurrentCompletion.myToComplete.get(index); } }); myList.getSelectionModel().clearSelection(); final PopupChooserBuilder builder = JBPopupFactory.getInstance().createListPopupBuilder(myList); builder.addListener( new JBPopupListener() { public void beforeShown(LightweightWindowEvent event) { myPathTextField.registerKeyboardAction( myCancelAction, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); for (Action each : myDisabledTextActions) { each.setEnabled(false); } } public void onClosed(LightweightWindowEvent event) { myPathTextField.unregisterKeyboardAction(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0)); for (Action each : myDisabledTextActions) { each.setEnabled(true); } } }); myCurrentPopup = builder .setRequestFocus(false) .setAdText(getAdText(myCurrentCompletion)) .setAutoSelectIfEmpty(false) .setResizable(false) .setCancelCallback( new Computable<Boolean>() { public Boolean compute() { final int caret = myPathTextField.getCaretPosition(); myPathTextField.setSelectionStart(caret); myPathTextField.setSelectionEnd(caret); myPathTextField.setFocusTraversalKeysEnabled(true); SwingUtilities.invokeLater( new Runnable() { public void run() { getField().requestFocus(); } }); return Boolean.TRUE; } }) .setItemChoosenCallback( new Runnable() { public void run() { processChosenFromCompletion(false); } }) .setCancelKeyEnabled(false) .setAlpha(0.1f) .setFocusOwners(new Component[] {myPathTextField}) .createPopup(); if (result.myPreselected != null) { myList.setSelectedValue(result.myPreselected, false); } myPathTextField.setFocusTraversalKeysEnabled(false); myCurrentPopup.showInScreenCoordinates(getField(), getLocationForCaret(myPathTextField)); }