当前页面: 开发资料首页 → Eclipse 专题 → 在定制Eclipse SWT组件中实现MVC
摘要: 作者简要介绍了 MVC架构,以结构化查看器的形式解释了 MVC 的当前实现
public class ExampleView extends ViewPart
{ ... public void createPartControl(Composite parent)
{ // define a grid layout
GridLayout layout = new GridLayout();
layout.numColumns = 1;
layout.marginHeight = 0;
layout.marginWidth = 0; l
ayout.horizontalSpacing = 0;
layout.verticalSpacing = 1;
parent.setLayout(layout);
// create widgets createActionBar(parent);
createTree(parent);
// add context menu and listeners
viewer.addDoubleClickListener(this); viewer.addSelectionChangedListener(openAction);
// register viewer so actions respond to selection getSite().setSelectionProvider(viewer);
hookContextMenu();
}
private void createTree(Composite parent)
{
viewer = new TreeViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
viewer.setContentProvider(new ExampleViewContentProvider()); viewer.setLabelProvider
(new ExampleViewLabelProvider());
viewer.setSorter(new ViewerSorter());
viewer.setInput(ModelManager.getExampleModel());
viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
} ... }
</td></tr></table>
public class ExampleViewContentprovide implements ITreeContentProvide {
</td></tr></table>
/** * Register content provider with model. */
public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
{
if (newInput != null)
{
this.viewer = viewer;
this.model = (ExampleDelegate)newInput; this.model.addModelListener(this);
}
}
</td></tr></table>