attributepropertysection.java

来自「基于Java RCP 应用的属性编辑, 可以对RCP 程序进行属性的设置」· Java 代码 · 共 69 行

JAVA
69
字号
package commonproperties.tab;

import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;

import commonproperties.model.FileModel;

public class AttributePropertySection extends AbstractPropertySection {

	private FileModel fileModel = null;

	private Text lastModifiedText;

	private CCombo readOnlyCombo;

	@Override
	public void createControls(Composite parent,
			TabbedPropertySheetPage aTabbedPropertySheetPage) {
		super.createControls(parent, aTabbedPropertySheetPage);

		Composite composite = getWidgetFactory()
				.createFlatFormComposite(parent);

		composite.setLayout(new GridLayout(2, false));

		getWidgetFactory().createCLabel(composite,
				"isReadOnly: ");

		readOnlyCombo = getWidgetFactory().createCCombo(composite);
		readOnlyCombo.setItems(new String[] { "true", "false" });
		readOnlyCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

		getWidgetFactory().createCLabel(composite,
				"lastModifiedTime: ");

		lastModifiedText = getWidgetFactory().createText(composite, "");
		lastModifiedText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
	}

	@Override
	public void refresh() {
		super.refresh();
		if (fileModel.getFile().canWrite()) {
			readOnlyCombo.select(1);
		} else {
			readOnlyCombo.select(0);
		}
		lastModifiedText.setText(fileModel.getFile().lastModified() + "");
	}

	@Override
	public void setInput(IWorkbenchPart part, ISelection selection) {
		super.setInput(part, selection);
		Object obj = ((IStructuredSelection) selection).getFirstElement();
		if (obj instanceof FileModel) {
			fileModel = (FileModel) obj;
		}
	}

}

⌨️ 快捷键说明

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