/** * Obtain the string representation of all supported log levels. * * @return an array of strings, each representing a certain log level. */ public static List<String> getLogLevels() { List<String> logLevels = new ArrayList<String>(); for (LogLevel l : LogLevel.values()) { logLevels.add(l.getStringValue()); } return logLevels; }
@Override public void createPartControl(Composite parent) { Display d = parent.getDisplay(); LogColors colors = new LogColors(); ImageLoader loader = ImageLoader.getDdmUiLibLoader(); colors.infoColor = new Color(d, 0, 127, 0); colors.debugColor = new Color(d, 0, 0, 127); colors.errorColor = new Color(d, 255, 0, 0); colors.warningColor = new Color(d, 255, 127, 0); colors.verboseColor = new Color(d, 0, 0, 0); mCreateFilterAction = new CommonAction("Create Filter") { @Override public void run() { mLogPanel.addFilter(); } }; mCreateFilterAction.setToolTipText("Create Filter"); mCreateFilterAction.setImageDescriptor(loader.loadDescriptor("add.png")); mEditFilterAction = new CommonAction("Edit Filter") { @Override public void run() { mLogPanel.editFilter(); } }; mEditFilterAction.setToolTipText("Edit Filter"); mEditFilterAction.setImageDescriptor(loader.loadDescriptor("edit.png")); // $NON-NLS-1$ mDeleteFilterAction = new CommonAction("Delete Filter") { @Override public void run() { mLogPanel.deleteFilter(); } }; mDeleteFilterAction.setToolTipText("Delete Filter"); mDeleteFilterAction.setImageDescriptor(loader.loadDescriptor("delete.png")); // $NON-NLS-1$ mExportAction = new CommonAction("Export Selection As Text...") { @Override public void run() { mLogPanel.save(); } }; mExportAction.setToolTipText("Export Selection As Text..."); mExportAction.setImageDescriptor(loader.loadDescriptor("save.png")); // $NON-NLS-1$ mGotoMethodDeclarationAction = new CommonAction("Go to Problem (method declaration)") { @Override public void run() { goToErrorLine(CHOICE_METHOD_DECLARATION); } }; mGotoErrorLineAction = new CommonAction("Go to Problem (error line)") { @Override public void run() { goToErrorLine(CHOICE_ERROR_LINE); } }; LogLevel[] levels = LogLevel.values(); mLogLevelActions = new CommonAction[mLogLevelIcons.length]; for (int i = 0; i < mLogLevelActions.length; i++) { String name = levels[i].getStringValue(); mLogLevelActions[i] = new CommonAction(name, IAction.AS_CHECK_BOX) { @Override public void run() { // disable the other actions and record current index for (int i = 0; i < mLogLevelActions.length; i++) { Action a = mLogLevelActions[i]; if (a == this) { a.setChecked(true); // set the log level mLogPanel.setCurrentFilterLogLevel(i + 2); } else { a.setChecked(false); } } } }; mLogLevelActions[i].setToolTipText(name); mLogLevelActions[i].setImageDescriptor(loader.loadDescriptor(mLogLevelIcons[i])); } mClearAction = new Action("Clear Log") { @Override public void run() { mLogPanel.clear(); } }; mClearAction.setImageDescriptor(loader.loadDescriptor("clear.png")); // $NON-NLS-1$ // now create the log view mLogPanel = new LogPanel(colors, new FilterStorage(), LogPanel.FILTER_MANUAL); mLogPanel.setLogCatViewInterface(this); mLogPanel.setActions(mDeleteFilterAction, mEditFilterAction, mLogLevelActions); // get the font String fontStr = DdmsPlugin.getDefault() .getPreferenceStore() .getString(PreferenceInitializer.ATTR_LOGCAT_FONT); if (fontStr != null) { FontData data = new FontData(fontStr); if (fontStr != null) { mLogPanel.setFont(new Font(parent.getDisplay(), data)); } } mLogPanel.createPanel(parent); setSelectionDependentPanel(mLogPanel); // place the actions. placeActions(); // setup the copy action mClipboard = new Clipboard(d); IActionBars actionBars = getViewSite().getActionBars(); actionBars.setGlobalActionHandler( ActionFactory.COPY.getId(), new Action("Copy") { @Override public void run() { mLogPanel.copy(mClipboard); } }); // setup the select all action actionBars.setGlobalActionHandler( ActionFactory.SELECT_ALL.getId(), new Action("Select All") { @Override public void run() { mLogPanel.selectAll(); } }); }