📄 selectrootswizardpage.java
字号:
/**
* Copyright (c) 2003-2006 Craig Setera
* All Rights Reserved.
* Licensed under the Eclipse Public License - v 1.0
* For more information see http://www.eclipse.org/legal/epl-v10.html
*/
package eclipseme.ui.internal.migration;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ICheckStateListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import eclipseme.core.internal.migration.OldPlatformComponentsAccess;
import eclipseme.ui.internal.EclipseMEUIPlugin;
import eclipseme.ui.viewers.TableColumnInfo;
import eclipseme.ui.viewers.TableViewerConfiguration;
/**
* Wizard page for the selection of the roots to
* be searched for devices.
* <p />
* Copyright (c) 2003-2006 Craig Setera<br>
* All Rights Reserved.<br>
* Licensed under the Eclipse Public License - v 1.0<p/>
* <br>
* $Revision: 1.2 $
* <br>
* $Date: 2006/05/15 21:31:40 $
* <br>
* @author Craig Setera
*/
public class SelectRootsWizardPage extends WizardPage {
private static final Object[] NO_ELEMENTS = new Object[0];
// Implementation of the table's content provider.
private class TableContentProvider implements IStructuredContentProvider
{
/**
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
*/
public Object[] getElements(Object inputElement) {
Object[] elements = NO_ELEMENTS;
if (inputElement instanceof OldPlatformComponentsAccess) {
elements = ((OldPlatformComponentsAccess) inputElement).getRoots();
}
return elements;
}
public void dispose() {}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
}
// Label provider for the roots
private class RootsLabelProvider extends LabelProvider implements ITableLabelProvider {
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
public String getColumnText(Object element, int columnIndex) {
String text = "";
if (columnIndex == 1) {
text = (String) element;
}
return text;
}
}
// Column information structure
private static final int DEFAULT_TABLE_WIDTH = 450;
private static final TableColumnInfo[] COLUMN_INFO = new TableColumnInfo[] {
new TableColumnInfo("Select", 10f, null),
new TableColumnInfo("Directory", 90f, null),
};
private CheckboxTableViewer viewer;
/**
* Construct the wizard page.
*/
public SelectRootsWizardPage() {
super("SelectRootsWizardPage");
setTitle("Select search roots");
setDescription("Select the file system root directories to be searched for devices.");
setPageComplete(false);
}
/**
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/
public void createControl(Composite parent) {
viewer = createTableViewer(parent);
setControl(viewer.getTable());
}
/**
* Return the selected root files.
*
* @return
*/
String[] getSelectedRoots() {
String[] roots = null;
if (viewer != null) {
Object[] selected = viewer.getCheckedElements();
roots = new String[selected.length];
System.arraycopy(selected, 0, roots, 0, selected.length);
}
return roots;
}
/**
* Create the devices table viewer.
*
* @param parent
*/
private CheckboxTableViewer createTableViewer(Composite composite) {
// Create the table
int styles =
SWT.SINGLE | SWT.V_SCROLL |
SWT.BORDER | SWT.FULL_SELECTION | SWT.CHECK;
Table table = new Table(composite, styles);
table.setHeaderVisible(true);
table.setLinesVisible(true);
table.setLayoutData(new GridData(GridData.FILL_BOTH));
// Wire up the viewer
CheckboxTableViewer viewer = new CheckboxTableViewer(table);
viewer.setContentProvider(new TableContentProvider());
viewer.setLabelProvider(new RootsLabelProvider());
viewer.addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(CheckStateChangedEvent event) {
updatePageComplete();
}
});
IDialogSettings viewerSettings =
EclipseMEUIPlugin.getDialogSettings(getDialogSettings(), "selectRootsPageViewerSettings");
TableViewerConfiguration viewerConfiguration =
new TableViewerConfiguration(viewerSettings, DEFAULT_TABLE_WIDTH, COLUMN_INFO, 1);
viewerConfiguration.configure(viewer);
viewer.setInput(new OldPlatformComponentsAccess());
updatePageComplete();
return viewer;
}
/**
* Update the state of the page completion.
*/
private void updatePageComplete() {
boolean complete = false;
if ((viewer != null) && (viewer.getCheckedElements() != null)) {
complete = viewer.getCheckedElements().length > 0;
}
setPageComplete(complete);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -