/** * Initializes custom contact action buttons. * * @param contactActionButtons the list of buttons to initialize * @param gridX the X grid of the first button * @param xBounds the x bounds of the first button * @return the new grid X coordinate after adding all the buttons */ private int initGroupActionButtons( Collection<SIPCommButton> contactActionButtons, int gridX, int xBounds) { // Reinit the labels to take the whole horizontal space. addLabels(gridX + contactActionButtons.size()); Iterator<SIPCommButton> actionsIter = contactActionButtons.iterator(); while (actionsIter.hasNext()) { final SIPCommButton actionButton = actionsIter.next(); // We need to explicitly remove the buttons from the tooltip manager, // because we're going to manager the tooltip ourselves in the // DefaultTreeContactList class. We need to do this in order to have // a different tooltip for every button and for non button area. ToolTipManager.sharedInstance().unregisterComponent(actionButton); if (customActionButtonsUIGroup == null) customActionButtonsUIGroup = new LinkedList<JButton>(); customActionButtonsUIGroup.add(actionButton); xBounds += addButton(actionButton, ++gridX, xBounds, false); } return gridX; }
private TreeModel buildModel(Object[] resolvers) { TreeModel fullModel = null; DefaultMutableTreeNode top = new DefaultMutableTreeNode(Tr.t("root")); try { cpos = null; for (Object resolver : resolvers) { if (resolver instanceof ColorPository) { cpos = (ColorPository) resolver; GraphCellRenderer graphCellRenderer = new GraphCellRenderer(cpos); colors.setCellRenderer(graphCellRenderer); break; } } Collection<ColorPository.ClassRecord> classes = cpos.getClasses(); String[] classNames = new String[classes.size()]; Iterator<ColorPository.ClassRecord> it = classes.iterator(); int count = 0; while (it.hasNext()) { classNames[count] = it.next().name; count++; } Arrays.sort(classNames); for (String className : classNames) { ColorPository.ColorRecord[] colors = cpos.enumerateColors(className); String[] colorNames = new String[colors.length]; for (int a = 0; a < colorNames.length; a++) { colorNames[a] = colors[a].name; } Arrays.sort(colorNames); DefaultMutableTreeNode tn = new DefaultMutableTreeNode(className); top.add(tn); for (String colorName : colorNames) { tn.add(new DefaultMutableTreeNode(colorName)); } } fullModel = new DefaultTreeModel(top); } catch (Exception e) { fullModel = new DefaultTreeModel(new DefaultMutableTreeNode(Tr.t("root.failed"))); // e.printStackTrace(); } return fullModel; }