Java 类com.intellij.ui.components.OnOffButton 实例源码

项目:tools-idea    文件:SearchEverywhereAction.java   
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
  Component cmp = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
  if (myLocationString != null || value instanceof BooleanOptionDescription) {
    final JPanel panel = new JPanel(new BorderLayout());
    panel.add(cmp, BorderLayout.CENTER);
    final Component rightComponent;
    if (value instanceof BooleanOptionDescription) {
      final OnOffButton button = new OnOffButton();
      button.setSelected(((BooleanOptionDescription)value).isOptionEnabled());
      rightComponent = button;
    } else {
      rightComponent = myLocation.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
    }
    panel.add(rightComponent, BorderLayout.EAST);
    cmp = panel;
  }

  cmp.setBackground(isSelected ? UIUtil.getListSelectionBackground() : getRightBackground());
  String title = getTitle(index, value, index == 0 ? null : list.getModel().getElementAt(index -1));
  myTitle.setText(title == null ? "" : title);
  myLeftPanel.removeAll();
  myLeftPanel.setBackground(Gray._242);
  myMainPanel.removeAll();
  myLeftPanel.add(myTitle, BorderLayout.EAST);
  myMainPanel.add(myLeftPanel, BorderLayout.WEST);
  myMainPanel.add(cmp, BorderLayout.CENTER);
  return myMainPanel;
  }
项目:intellij-ce-playground    文件:SearchEverywhereAction.java   
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
  Component cmp;
  PsiElement file;
  myLocationString = null;
  String pattern = "*" + myPopupField.getText();
  Matcher matcher = NameUtil.buildMatcher(pattern, 0, true, true);
  if (isMoreItem(index)) {
    cmp = More.get(isSelected);
  } else if (value instanceof VirtualFile
             && myProject != null
             && ((((VirtualFile)value).isDirectory() && (file = PsiManager.getInstance(myProject).findDirectory((VirtualFile)value)) != null )
                 || (file = PsiManager.getInstance(myProject).findFile((VirtualFile)value)) != null)) {
    myFileRenderer.setPatternMatcher(matcher);
    cmp = myFileRenderer.getListCellRendererComponent(list, file, index, isSelected, cellHasFocus);
  } else if (value instanceof PsiElement) {
    myFileRenderer.setPatternMatcher(matcher);
    cmp = myFileRenderer.getListCellRendererComponent(list, value, index, isSelected, isSelected);
  } else if (value instanceof GotoActionModel.ActionWrapper) {
    cmp = myActionsRenderer.getListCellRendererComponent(list, new GotoActionModel.MatchedValue(((GotoActionModel.ActionWrapper)value), pattern), index, isSelected, isSelected);
  } else {
    cmp = super.getListCellRendererComponent(list, value, index, isSelected, isSelected);
    final JPanel p = new JPanel(new BorderLayout());
    p.setBackground(UIUtil.getListBackground(isSelected));
    p.add(cmp, BorderLayout.CENTER);
    cmp = p;
  }
  if (myLocationString != null || value instanceof BooleanOptionDescription) {
    final JPanel panel = new JPanel(new BorderLayout());
    panel.setBackground(UIUtil.getListBackground(isSelected));
    panel.add(cmp, BorderLayout.CENTER);
    final Component rightComponent;
    if (value instanceof BooleanOptionDescription) {
      final OnOffButton button = new OnOffButton();
      button.setSelected(((BooleanOptionDescription)value).isOptionEnabled());
      rightComponent = button;
    }
    else {
      rightComponent = myLocation.getListCellRendererComponent(list, value, index, isSelected, isSelected);
    }
    panel.add(rightComponent, BorderLayout.EAST);
    cmp = panel;
  }

  Color bg = cmp.getBackground();
  if (bg == null) {
    cmp.setBackground(UIUtil.getListBackground(isSelected));
    bg = cmp.getBackground();
  }
  myMainPanel.setBorder(new CustomLineBorder(bg, 0, 0, 2, 0));
  String title = getModel().titleIndex.getTitle(index);
  myMainPanel.removeAll();
  if (title != null) {
    myTitle.setText(title);
    myMainPanel.add(createTitle(" " + title), BorderLayout.NORTH);
  }
  myMainPanel.add(cmp, BorderLayout.CENTER);
  if (cmp instanceof Accessible) {
    myMainPanel.setAccessible((Accessible)cmp);
  }
  final int width = myMainPanel.getPreferredSize().width;
  if (width > myPopupActualWidth) {
    myPopupActualWidth = width;
    //schedulePopupUpdate();
  }
  return myMainPanel;
}
项目:intellij-ce-playground    文件:GotoActionModel.java   
private static void addOnOffButton(@NotNull JPanel panel, boolean selected) {
  OnOffButton button = new OnOffButton();
  button.setSelected(selected);
  panel.add(button, BorderLayout.EAST);
  panel.setBorder(IdeBorderFactory.createEmptyBorder(0, 2, 0, 2));
}
项目:consulo    文件:SearchEverywhereAction.java   
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
  Component cmp;
  PsiElement file;
  myLocationString = null;
  String pattern = "*" + myPopupField.getText();
  Matcher matcher = NameUtil.buildMatcher(pattern, 0, true, true, pattern.toLowerCase().equals(pattern));
  if (isMoreItem(index)) {
    cmp = More.get(isSelected);
  }
  else if (value instanceof VirtualFile &&
           myProject != null &&
           ((((VirtualFile)value).isDirectory() && (file = PsiManager.getInstance(myProject).findDirectory((VirtualFile)value)) != null) ||
            (file = PsiManager.getInstance(myProject).findFile((VirtualFile)value)) != null)) {
    MatcherHolder.associateMatcher(myFileRenderer, matcher);
    cmp = myFileRenderer.getListCellRendererComponent(list, file, index, isSelected, cellHasFocus);
  }
  else if (value instanceof PsiElement) {
    MatcherHolder.associateMatcher(myFileRenderer, matcher);
    cmp = myFileRenderer.getListCellRendererComponent(list, value, index, isSelected, isSelected);
  }
  else {
    cmp = super.getListCellRendererComponent(list, value, index, isSelected, isSelected);
    final JPanel p = new JPanel(new BorderLayout());
    p.setBackground(UIUtil.getListBackground(isSelected));
    p.add(cmp, BorderLayout.CENTER);
    cmp = p;
  }
  if (myLocationString != null || value instanceof BooleanOptionDescription) {
    final JPanel panel = new JPanel(new BorderLayout());
    panel.setBackground(UIUtil.getListBackground(isSelected));
    panel.add(cmp, BorderLayout.CENTER);
    final Component rightComponent;
    if (value instanceof BooleanOptionDescription) {
      final OnOffButton button = new OnOffButton();
      button.setSelected(((BooleanOptionDescription)value).isOptionEnabled());
      rightComponent = button;
    }
    else {
      rightComponent = myLocation.getListCellRendererComponent(list, value, index, isSelected, isSelected);
    }
    panel.add(rightComponent, BorderLayout.EAST);
    cmp = panel;
  }

  Color bg = cmp.getBackground();
  if (bg == null) {
    cmp.setBackground(UIUtil.getListBackground(isSelected));
    bg = cmp.getBackground();
  }
  myMainPanel.setBorder(new CustomLineBorder(bg, 0, 0, 2, 0));
  String title = getModel().titleIndex.getTitle(index);
  myMainPanel.removeAll();
  if (title != null) {
    myTitle.setText(title);
    myMainPanel.add(createTitle(" " + title), BorderLayout.NORTH);
  }
  myMainPanel.add(cmp, BorderLayout.CENTER);
  final int width = myMainPanel.getPreferredSize().width;
  if (width > myPopupActualWidth) {
    myPopupActualWidth = width;
    //schedulePopupUpdate();
  }
  return myMainPanel;
}