X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.rcp%2Fsrc%2Fnet%2Fmograsim%2Frcp%2Fparts%2FSamplePart.java;fp=net.mograsim.rcp%2Fsrc%2Fnet%2Fmograsim%2Frcp%2Fparts%2FSamplePart.java;h=0bbe8aacb3245f58bc2ea302bfe1aabffc9f544f;hb=07faf07e3acb8b2afdc2bf65a46bc868faaed0f8;hp=0000000000000000000000000000000000000000;hpb=0009789a8df6b8d4562b6e1cbfa75102a7516ea8;p=Mograsim.git diff --git a/net.mograsim.rcp/src/net/mograsim/rcp/parts/SamplePart.java b/net.mograsim.rcp/src/net/mograsim/rcp/parts/SamplePart.java new file mode 100644 index 00000000..0bbe8aac --- /dev/null +++ b/net.mograsim.rcp/src/net/mograsim/rcp/parts/SamplePart.java @@ -0,0 +1,61 @@ +package net.mograsim.rcp.parts; + +import java.util.Arrays; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.inject.Inject; + +import org.eclipse.e4.ui.di.Focus; +import org.eclipse.e4.ui.di.Persist; +import org.eclipse.e4.ui.model.application.ui.basic.MPart; +import org.eclipse.jface.viewers.ArrayContentProvider; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Text; + +public class SamplePart +{ + + private TableViewer tableViewer; + + @Inject + private MPart part; + + @PostConstruct + public void createComposite(Composite parent) + { + parent.setLayout(new GridLayout(1, false)); + + Text txtInput = new Text(parent, SWT.BORDER); + txtInput.setMessage("Enter text to mark part as dirty"); + txtInput.addModifyListener(e -> part.setDirty(true)); + txtInput.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + + tableViewer = new TableViewer(parent); + + tableViewer.setContentProvider(ArrayContentProvider.getInstance()); + tableViewer.setInput(createInitialDataModel()); + tableViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + + @Focus + public void setFocus() + { + tableViewer.getTable().setFocus(); + } + + @Persist + public void save() + { + part.setDirty(false); + } + + private static List createInitialDataModel() + { + return Arrays.asList("Sample item 1", "Sample item 2", "Sample item 3", "Sample item 4", "Sample item 5"); + } +} \ No newline at end of file