private int calculateMaxRootWidth() { int width = 0; for (VirtualFile file : myLogDataHolder.getRoots()) { Font tableFont = UIManager.getFont("Table.font"); width = Math.max(getFontMetrics(tableFont).stringWidth(file.getName() + " "), width); } return width; }
public VcsLogClassicFilterUi( @NotNull VcsLogUiImpl ui, @NotNull VcsLogDataHolder logDataHolder, @NotNull VcsLogUiProperties uiProperties, @NotNull DataPack initialDataPack) { myUi = ui; myTextFilter = new SearchTextFieldWithStoredHistory("Vcs.Log.Text.Filter.History") { @Override protected void onFieldCleared() { applyFilters(); } }; myTextFilter .getTextEditor() .addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { applyFilters(); myTextFilter.addCurrentTextToHistory(); } }); myBranchFilterComponent = new BranchFilterPopupComponent(this, initialDataPack, uiProperties); myUserFilterComponent = new UserFilterPopupComponent(this, logDataHolder, uiProperties); myDateFilterComponent = new DateFilterPopupComponent(this); myStructureFilterComponent = new StructureFilterPopupComponent(this, logDataHolder.getRoots()); myActionGroup = new DefaultActionGroup(); myActionGroup.add(new TextFilterComponent(myTextFilter)); myActionGroup.add(new FilterActionComponent(myBranchFilterComponent)); myActionGroup.add(new FilterActionComponent(myUserFilterComponent)); myActionGroup.add(new FilterActionComponent(myDateFilterComponent)); myActionGroup.add(new FilterActionComponent(myStructureFilterComponent)); }