⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 selectrootswizardpage.java

📁 eclipseme的最新版本的source,欢迎j2me程序员使用
💻 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 + -