📄 rootpreferencepage.java
字号:
/* * Copyright (C) 2004-2005 Rutger M. Ovidius for use with the sancho project. * See LICENSE.txt for license information. */package sancho.view.preferences;import java.io.File;import java.io.FilenameFilter;import java.util.ArrayList;import java.util.StringTokenizer;import org.eclipse.swt.SWT;import org.eclipse.swt.events.SelectionAdapter;import org.eclipse.swt.events.SelectionEvent;import org.eclipse.swt.layout.GridData;import org.eclipse.swt.widgets.Button;import org.eclipse.swt.widgets.Combo;import org.eclipse.swt.widgets.Composite;import org.eclipse.swt.widgets.Control;import org.eclipse.swt.widgets.FileDialog;import org.eclipse.swt.widgets.Label;import org.eclipse.swt.widgets.List;import org.eclipse.swt.widgets.TabFolder;import org.eclipse.swt.widgets.Text;import sancho.utility.VersionInfo;import sancho.view.utility.SResources;import sancho.view.utility.WidgetFactory;public class RootPreferencePage extends CPreferencePage { public RootPreferencePage(String title) { super(title); } protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(WidgetFactory.createGridLayout(1, 0, 0, 0, 0, false)); TabFolder tabFolder = new TabFolder(composite, SWT.TOP); tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH)); createGeneralTab(tabFolder); createDownloadsTab(tabFolder); createSearchTab(tabFolder); createServersTab(tabFolder); createConsoleTab(tabFolder); createGraphTab(tabFolder); createRoomsTab(tabFolder); createIRCTab(tabFolder); createWebBrowserTab(tabFolder); return composite; } protected void createGeneralTab(TabFolder tabFolder) { Composite composite = createNewTab(tabFolder, "p.general"); String[] extensions; if (VersionInfo.getOSPlatform().equals("Windows")) extensions = new String[]{"*.exe;*.bat"}; else extensions = new String[]{"*"}; createInformationLabel(composite, "p.coreExecutableInfo"); setupFileEditor("coreExecutable", "p.r.general.coreExecutable", extensions, composite); setupBooleanEditor("killSpawnedCoreOnExit", "p.r.general.killSpawnedCoreOnExit", composite); if (!VersionInfo.getOSPlatform().equals("Windows")) { createSeparator(composite); createInformationLabel(composite, "p.webBrowserInfo"); setupFileEditor("defaultWebBrowser", "p.r.general.defaultBrowser", extensions, composite); } createSeparator(composite); createInformationLabel(composite, "p.localeInfo"); Label l = new Label(composite, SWT.NONE); l.setText(SResources.getString("p.r.general.locale")); final Combo c = new Combo(composite, SWT.READ_ONLY); String currentValue = PreferenceLoader.loadString("locale"); c.add(SResources.S_ES); String[] s = getLocales(); for (int i = 0; i < s.length; i++) { c.add(s[i]); if (s[i].equals(currentValue)) { c.select(i + 1); } } c.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { PreferenceLoader.getPreferenceStore().setValue("locale", c.getItem(c.getSelectionIndex())); } }); createSeparator(composite); setupBooleanEditor("autoReconnect", "p.r.general.autoReconnect", composite); setupIntegerEditor("autoReconnectDelay", "p.r.general.autoReconnectDelay", 1, 10000, composite); createSeparator(composite); if (SWT.getPlatform().equals("win32") || SWT.getPlatform().equals("gtk")) { setupBooleanEditor("minimizeOnClose", "p.r.general.systrayOnClose", composite); setupBooleanEditor("systrayOnMinimize", "p.r.general.systrayOnMinimize", composite); } setupBooleanEditor("allowMultipleInstances", "p.r.general.multipleInstances", composite); setupBooleanEditor("hostManagerOnStart", "p.r.general.hostManagerOnStart", composite); setupBooleanEditor("useLastFile", "p.r.general.useLastFile", composite); setupBooleanEditor("killCoreOnExit", "p.r.general.killCoreOnExit", composite); setupBooleanEditor("versionCheck", "p.r.general.versionCheck", composite); composite.setLayout(WidgetFactory.createGridLayout(3, 5, 5, 5, 5, false)); } protected void createDownloadsTab(TabFolder tabFolder) { Composite composite = createNewTab(tabFolder, "tab.transfers"); composite.setLayout(WidgetFactory.createGridLayout(1, 0, 0, 0, 0, false)); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); TabFolder mainTabFolder = new TabFolder(composite, SWT.BOTTOM); mainTabFolder.setLayoutData(new GridData(GridData.FILL_BOTH)); createDownloadsGeneral(mainTabFolder); createDownloadsPreview(mainTabFolder); createDownloadsExplorer(mainTabFolder); } protected void createDownloadsGeneral(TabFolder tabFolder) { Composite composite = createNewTab(tabFolder, "p.general"); createInformationLabel(composite, "p.delayInfo"); setupIntegerEditor("updateDelay", "p.r.downloads.updateDelay", 0, 600, composite); createSeparator(composite); setupBooleanEditor("pollUpStats", "p.r.downloads.pollUpstats", composite); setupIntegerEditor("pollDelay", "p.r.downloads.pollDelay", 1, 600, composite); createSeparator(composite); setupIntegerEditor("requestFileInfoDelay", "p.r.downloads.requestFileInfoDelay", 0, 99999, composite); createSeparator(composite); setupBooleanEditor("displayChunkGraphs", "p.r.downloads.displayChunkGraphs", composite); setupBooleanEditor("tableCellEditors", "p.r.downloads.tableCellEditors", composite); setupBooleanEditor("dragAndDrop", "p.r.downloads.dragAndDrop", composite); setupBooleanEditor("maintainSortOrder", "p.r.downloads.maintainSortOrder", composite); setupBooleanEditor("downloadCompleteDialog", "p.r.downloads.downloadCompleteDialog", composite); setupBooleanEditor("downloadCompleteLog", "p.r.downloads.downloadCompleteLog", composite); setupBooleanEditor("mldonkey.InterestedInSources", "p.r.downloads.interestedInSources", composite); // setupBooleanEditor("downloadsTabsOnBottom", "p.r.downloads.downloadTabsOnBottom", composite); composite.setLayout(WidgetFactory.createGridLayout(3, 5, 5, 5, 5, false)); } protected void createDownloadsPreview(TabFolder tabFolder) { Composite composite = createNewTab(tabFolder, "m.d.preview"); String[] extensions; if (VersionInfo.getOSPlatform().equals("Windows")) extensions = new String[]{"*.exe;*.bat"}; else extensions = new String[]{"*"}; createInformationLabel(composite, "p.previewInfo"); setupFileEditor("previewExecutable", "p.r.downloads.previewExecutable", extensions, composite); setupDirectoryEditor("previewWorkingDirectory", "p.r.downloads.previewWorkingDirectory", composite); createSeparator(composite); // real ugly // ----------------------------------------------------------------- final ArrayList extList = new ArrayList(); final ArrayList progList = new ArrayList(); GridData gd; Composite pComposite = new Composite(composite, SWT.NONE); gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 3; pComposite.setLayoutData(gd); pComposite.setLayout(WidgetFactory.createGridLayout(2, 0, 0, 0, 0, false)); Composite pSubComp = new Composite(pComposite, SWT.NONE); pSubComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); pSubComp.setLayout(WidgetFactory.createGridLayout(5, 0, 0, 0, 5, false)); Label info = new Label(pSubComp, SWT.NONE); info.setText(SResources.getString("p.previewExtensionsInfo")); gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 5; info.setLayoutData(gd); Label l = new Label(pSubComp, SWT.NONE); l.setText(SResources.getString("l.ext")); final Text extText = new Text(pSubComp, SWT.SINGLE | SWT.BORDER); extText.setText("mp3"); new Label(pSubComp, SWT.NONE).setText("="); final Text progText = new Text(pSubComp, SWT.SINGLE | SWT.BORDER); progText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); Button browseButton = new Button(pSubComp, SWT.NONE); browseButton.setText(SResources.getString("b.browse")); browseButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); browseButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { FileDialog fileDialog = new FileDialog(progText.getShell(), SWT.SINGLE); if (fileDialog.open() != null) { String path = fileDialog.getFilterPath() + System.getProperty("file.separator"); path += fileDialog.getFileName(); progText.setText(path); } } }); gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 5; Composite butComp = new Composite(pSubComp, SWT.NONE); butComp.setLayout(WidgetFactory.createGridLayout(2, 0, 0, 0, 0, false)); butComp.setLayoutData(gd); Button addButton = new Button(butComp, SWT.NONE); addButton.setText(SResources.getString("b.add")); addButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); Button remButton = new Button(butComp, SWT.NONE); remButton.setText(SResources.getString("b.remove")); remButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); final List list = new List(pComposite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -