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

📄 devicepropertieseditorpage.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.device.editor;

import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.Map.Entry;

import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;

import eclipseme.core.model.device.IDevice;
import eclipseme.ui.internal.EclipseMEUIPlugin;
import eclipseme.ui.viewers.TableColumnInfo;
import eclipseme.ui.viewers.TableViewerConfiguration;

/**
 * Device editor for the device properties.
 * <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.5 $
 * <br>
 * $Date: 2006/08/06 19:16:12 $
 * <br>
 * @author Craig Setera
 */
public class DevicePropertiesEditorPage extends AbstractDeviceEditorPage {
	private static final Object[] NO_ELEMENTS = new Object[0];
	
	// Content provider for a device's classpath entries
	private class DevicePropertiesContentProvider implements IStructuredContentProvider {
		public Object[] getElements(Object inputElement) {
			Object[] elements = NO_ELEMENTS;

			if (inputElement instanceof IDevice) {
				IDevice device = (IDevice) inputElement;
				Properties deviceProperties = device.getDeviceProperties();
				if (deviceProperties != null) {
					Set entrySet = deviceProperties.entrySet();
					elements = (Map.Entry[]) entrySet.toArray(new Map.Entry[entrySet.size()]);
				}
			}
			
			return elements;
		}

		public void dispose() {}
		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
	}
	
	// Label provider for Library instances
	private class PropertyLabelProvider 
		extends LabelProvider 
		implements ITableLabelProvider 
	{
		public Image getColumnImage(Object element, int columnIndex) {
			return null;
		}

		public String getColumnText(Object element, int columnIndex) {
			Map.Entry entry = (Entry) element;
			String text = "";
			
			switch (columnIndex) {
				case 0:
					text = entry.getKey().toString();
					break;
					
				case 1:
					text = entry.getValue().toString();
					break;
			}
			
			return text;
		}
	}

	// Column information structure
	private static final int DEFAULT_TABLE_WIDTH = 650;
	private static final TableColumnInfo[] COLUMN_INFO = new TableColumnInfo[] {
		new TableColumnInfo("Property", 40f, null),
		new TableColumnInfo("Value", 60f, null),
	};
	
	// Widgets
	private TableViewer viewer;

	/**
	 * Construct the editor page.
	 * 
	 * @param parent
	 * @param style
	 */
	public DevicePropertiesEditorPage(Composite parent, int style) {
		super(parent, style);
	}

	/**
	 * @see eclipseme.ui.internal.device.editor.AbstractDeviceEditorPage#commitDeviceChanges()
	 */
	public void commitDeviceChanges() {
		// TODO Not allowing changes in this editor yet
	}

	/**
	 * @see eclipseme.ui.internal.device.editor.AbstractDeviceEditorPage#getDescription()
	 */
	public String getDescription() {
		return "View the properties defined for the device";
	}

	/**
	 * @see eclipseme.ui.internal.device.editor.AbstractDeviceEditorPage#getTitle()
	 */
	public String getTitle() {
		return "Properties";
	}

	/**
	 * @see eclipseme.ui.internal.device.editor.AbstractDeviceEditorPage#setDevice(eclipseme.core.model.device.IDevice)
	 */
	public void setDevice(IDevice device) {
		super.setDevice(device);
		viewer.setInput(device);
	}

	/**
	 * @see eclipseme.ui.internal.device.editor.AbstractDeviceEditorPage#addPageControls(org.eclipse.swt.widgets.Composite)
	 */
	protected void addPageControls(Composite parent) {
		parent.setLayoutData(new GridData(GridData.FILL_BOTH));
		parent.setLayout(new GridLayout(2, false));

		GridData gridData = new GridData(GridData.FILL_BOTH);
		gridData.minimumWidth = DEFAULT_TABLE_WIDTH;
		gridData.heightHint = 400;
		viewer = createTableViewer(parent);
		viewer.getTable().setLayoutData(gridData);
	}

	/**
	 * Create the devices table viewer.
	 * 
	 * @param parent
	 */
	private TableViewer createTableViewer(Composite composite) {
		int styles = 
			SWT.SINGLE | SWT.V_SCROLL |  
			SWT.BORDER | SWT.FULL_SELECTION;
		Table table = new Table(composite, styles);
		table.setHeaderVisible(true);
		table.setLinesVisible(true);
		
		// Wire up the viewer
		TableViewer viewer = new TableViewer(table);
		viewer.setContentProvider(new DevicePropertiesContentProvider());
		viewer.setLabelProvider(new PropertyLabelProvider());
		
		IDialogSettings viewerSettings = 
			EclipseMEUIPlugin.getDialogSettings("devicePropertiesViewerSettings");
		TableViewerConfiguration viewerConfiguration =
			new TableViewerConfiguration(viewerSettings, DEFAULT_TABLE_WIDTH, COLUMN_INFO, 0);
		viewerConfiguration.configure(viewer);
		
		return viewer;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -