📄 defaultconfigurationpage.java
字号:
public void widgetSelected(SelectionEvent e) { AddIndicatorWizard wizard = new AddIndicatorWizard(); ChartIndicator indicator = wizard.open(); if (indicator != null) { TreeItem[] selection = tree.getSelection(); if (selection.length != 0) { if (selection[0].getData() instanceof ChartTab) ((ChartTab)selection[0].getData()).getIndicators().add(indicator); else if (selection[0].getData() instanceof ChartIndicator) ((ChartIndicator)selection[0].getData()).getParent().getIndicators().add(indicator); updateTree(); } } } }); settings = new Button(buttonsComposite, SWT.PUSH); settings.setText(Messages.DefaultConfigurationPage_Settings); GridData gridData = new GridData(SWT.FILL, SWT.BEGINNING, true, false); gridData.verticalIndent = 5; settings.setLayoutData(gridData); settings.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { TreeItem[] selection = tree.getSelection(); if (selection.length != 0) { if (selection[0].getData() instanceof ChartTab) { ChartTab tab = (ChartTab)selection[0].getData(); InputDialog dlg = new InputDialog(tree.getShell(), Messages.DefaultConfigurationPage_TabSettingsDialogTitle, Messages.DefaultConfigurationPage_TabSettingsDialogMessage, tab.getLabel(), new IInputValidator() { public String isValid(String newText) { return newText.length() == 0 ? "" : null; //$NON-NLS-1$ } }); if (dlg.open() == InputDialog.OK) { tab.setLabel(dlg.getValue()); selection[0].setText(tab.getLabel()); } } else if (selection[0].getData() instanceof ChartIndicator) { ChartIndicator indicator = (ChartIndicator)selection[0].getData(); IndicatorSettingsDialog dlg = new IndicatorSettingsDialog(indicator, tree.getShell()); dlg.open(); } } } }); remove = new Button(buttonsComposite, SWT.PUSH); remove.setText(Messages.DefaultConfigurationPage_Remove); gridData = new GridData(SWT.FILL, SWT.BEGINNING, true, false); gridData.verticalIndent = 5; remove.setLayoutData(gridData); remove.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { TreeItem[] selection = tree.getSelection(); if (selection.length != 0) { if (selection[0].getData() instanceof ChartRow) ((ChartRow)selection[0].getData()).getParent().getRows().remove(selection[0].getData()); else if (selection[0].getData() instanceof ChartTab) ((ChartTab)selection[0].getData()).getParent().getTabs().remove(selection[0].getData()); else if (selection[0].getData() instanceof ChartIndicator) ((ChartIndicator)selection[0].getData()).getParent().getIndicators().remove(selection[0].getData()); selection[0].dispose(); updateTree(); } } }); performDefaults(); return content; } /* (non-Javadoc) * @see org.eclipse.jface.preference.PreferencePage#performDefaults() */ protected void performDefaults() { chart = ChartsPlugin.createDefaultChart(); updateTree(); } /* (non-Javadoc) * @see org.eclipse.jface.preference.PreferencePage#performOk() */ public boolean performOk() { switch(period.getSelectionIndex()) { case 0: chart.setPeriod(ChartView.PERIOD_ALL); break; case 1: chart.setPeriod(ChartView.PERIOD_LAST2YEARS); break; case 2: chart.setPeriod(ChartView.PERIOD_LASTYEAR); break; case 3: chart.setPeriod(ChartView.PERIOD_LAST6MONTHS); break; case 4: { chart.setPeriod(ChartView.PERIOD_CUSTOM); try { chart.setBeginDate(CorePlugin.getDateParse().parse(begin.getText())); chart.setEndDate(CorePlugin.getDateParse().parse(end.getText())); } catch (ParseException e) { e.printStackTrace(); } break; } } chart.setCompression(10 - interval.getSelectionIndex()); ChartsPlugin.saveDefaultChart(chart); return super.performOk(); } protected void updateTree() { TreeItem[] selection = tree.getSelection(); final Object data = (selection.length != 0) ? selection[0].getData() : null; tree.setRedraw(false); tree.removeAll(); chart.accept(new IChartVisitor() { public void visit(Chart chart) { } public void visit(ChartRow row) { TreeItem treeItem = new TreeItem(tree, SWT.NONE); treeItem.setText(Messages.DefaultConfigurationPage_Row + String.valueOf(tree.getItemCount())); treeItem.setData(row); if (row.equals(data)) tree.setSelection(treeItem); } public void visit(ChartTab tab) { TreeItem parentItem = tree.getItem(tree.getItemCount() - 1); TreeItem treeItem = new TreeItem(parentItem, SWT.NONE); treeItem.setText(tab.getLabel()); treeItem.setData(tab); if (tab.equals(data)) tree.setSelection(treeItem); parentItem.setExpanded(true); } public void visit(ChartIndicator indicator) { TreeItem parentItem = tree.getItem(tree.getItemCount() - 1); parentItem = parentItem.getItem(parentItem.getItemCount() - 1); IConfigurationElement plugin = getIndicatorPlugin(indicator.getPluginId()); TreeItem treeItem = new TreeItem(parentItem, SWT.NONE); treeItem.setText(plugin.getAttribute("name")); //$NON-NLS-1$ treeItem.setData(indicator); if (indicator.equals(data)) tree.setSelection(treeItem); parentItem.setExpanded(true); } public void visit(ChartObject object) { } }); /* for (int r = 0; r < chart.getRows().size(); r++) { ChartRow row = (ChartRow)chart.getRows().get(r); TreeItem rowNode = new TreeItem(tree, SWT.NONE); rowNode.setText("ROW " + String.valueOf(r + 1)); rowNode.setData(row); for (int t = 0; t < row.getTabs().size(); t++) { ChartTab tab = (ChartTab)row.getTabs().get(t); TreeItem tabNode = new TreeItem(rowNode, SWT.NONE); tabNode.setText(tab.getLabel()); tabNode.setData(tab); rowNode.setExpanded(true); for (int i = 0; i < tab.getIndicators().size(); i++) { ChartIndicator indicator = (ChartIndicator)tab.getIndicators().get(i); IConfigurationElement plugin = getIndicatorPlugin(indicator.getPluginId()); TreeItem indicatorNode = new TreeItem(tabNode, SWT.NONE); indicatorNode.setText(plugin.getAttribute("name")); indicatorNode.setData(indicator); tabNode.setExpanded(true); } } }*/ tree.setRedraw(true); updateButtonsEnablement(); } protected void updateButtonsEnablement() { TreeItem[] selection = tree.getSelection(); addTab.setEnabled(selection.length != 0); addIndicator.setEnabled(selection.length != 0 && (selection[0].getData() instanceof ChartTab || selection[0].getData() instanceof ChartIndicator)); settings.setEnabled(selection.length != 0 && (selection[0].getData() instanceof ChartTab || selection[0].getData() instanceof ChartIndicator)); remove.setEnabled(selection.length != 0); } private static IConfigurationElement getIndicatorPlugin(String id) { IExtensionRegistry registry = Platform.getExtensionRegistry(); IExtensionPoint extensionPoint = registry.getExtensionPoint(ChartsPlugin.INDICATORS_EXTENSION_POINT); if (extensionPoint != null) { IConfigurationElement[] members = extensionPoint.getConfigurationElements(); for (int i = 0; i < members.length; i++) { IConfigurationElement item = members[i]; if (item.getAttribute("id").equals(id)) //$NON-NLS-1$ return item; } } return null; } protected void adjustDateFormat(Text widget) { DateFormat dateDisplay = CorePlugin.getDateFormat(); DateFormat dateParse = CorePlugin.getDateParse(); if (widget.getText().length() != 0) try { Date d = dateParse.parse(widget.getText()); widget.setText(dateDisplay.format(d)); } catch (ParseException pe) { CorePlugin.logException(pe); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -