📄 devicepropertieseditorpage.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 + -