Ignore:
Timestamp:
06/18/14 16:58:39 (10 years ago)
Author:
phdmakk
Message:

+ embedded ebnf editor
+ necessary dependencies
+ sample file

Location:
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.standalone/src/de/ugoe/cs/swe/bnftools/ebnf/standalone
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.standalone/src/de/ugoe/cs/swe/bnftools/ebnf/standalone/EBNFEditedResourceProvider.java

    r74 r75  
    1717        @Override 
    1818        public XtextResource createResource() { 
    19                 return (XtextResource) rsp.get().createResource(URI.createURI("test.ebnf")); 
     19                return (XtextResource) rsp.get().createResource(URI.createURI("test.bnf")); 
    2020        } 
    2121 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.standalone/src/de/ugoe/cs/swe/bnftools/ebnf/standalone/View.java

    r74 r75  
    11package de.ugoe.cs.swe.bnftools.ebnf.standalone; 
    22 
     3import java.io.File; 
     4import java.io.IOException; 
     5 
     6import org.apache.commons.io.FileUtils; 
     7import org.eclipse.emf.common.util.URI; 
    38import org.eclipse.emf.ecore.resource.Resource; 
     9import org.eclipse.emf.ecore.resource.ResourceSet; 
     10import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; 
     11import org.eclipse.jface.text.IDocument; 
     12import org.eclipse.jface.text.ITextInputListener; 
    413import org.eclipse.jface.viewers.IStructuredContentProvider; 
    514import org.eclipse.jface.viewers.ITableLabelProvider; 
     
    1019import org.eclipse.swt.custom.SashForm; 
    1120import org.eclipse.swt.graphics.Image; 
     21import org.eclipse.swt.layout.FillLayout; 
    1222import org.eclipse.swt.widgets.Composite; 
    1323import org.eclipse.ui.ISharedImages; 
    1424import org.eclipse.ui.PlatformUI; 
    1525import org.eclipse.ui.part.ViewPart; 
     26import org.eclipse.xtext.resource.XtextResource; 
    1627import org.eclipse.xtext.ui.editor.XtextSourceViewer; 
    1728import org.eclipse.xtext.ui.editor.embedded.EmbeddedEditor; 
     29import org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorFactory; 
    1830import org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorModelAccess; 
     31import org.eclipse.xtext.ui.editor.embedded.IEditedResourceProvider; 
     32import org.eclipse.xtext.ui.editor.model.XtextDocument; 
    1933 
     34import com.google.inject.Inject; 
     35import com.google.inject.Injector; 
     36 
     37import de.ugoe.cs.swe.bnftools.EbnfStandaloneSetup; 
     38import de.ugoe.cs.swe.bnftools.ui.internal.EbnfActivator; 
     39 
     40@SuppressWarnings("restriction") 
    2041public class View extends ViewPart { 
     42        private static final String FILE = "/Users/philip-iii/Dev/workspaces/bnf-v2/de.ugoe.cs.swe.bnftools.ebnf.standalone/somefile.bnf"; 
     43 
    2144        public static final String ID = "de.ugoe.cs.swe.bnftools.ebnf.standalone.view"; 
    2245 
     46        //NEW 
     47        @Inject EBNFEditedResourceProvider editedResourceProvider; 
     48        @Inject EmbeddedEditorFactory factory; 
     49 
     50         
    2351        private TableViewer viewer; 
    2452        private EmbeddedEditor handle; 
    2553        private SashForm sashForm; 
    2654        private EmbeddedEditorModelAccess partialEditor; 
    27         private Resource resource; 
    2855        private XtextSourceViewer viewer2; 
    2956 
     
    5178        } 
    5279 
     80        //NEW 
     81        private void createEditor() { 
     82                IEditedResourceProvider resourceProvider = new IEditedResourceProvider() { 
     83 
     84                @Override 
     85                public XtextResource createResource() { 
     86                    try { 
     87                        EbnfStandaloneSetup.doSetup(); 
     88                        ResourceSet resourceSet = new ResourceSetImpl(); 
     89                        Resource resource = resourceSet.createResource(URI.createURI(FILE)); 
     90                        return (XtextResource) resource; 
     91                    } catch (Exception e) { 
     92                        return null; 
     93                    } 
     94                } 
     95            }; 
     96 
     97            //or change to current activator... 
     98            EbnfActivator activator = EbnfActivator.getInstance(); 
     99            Injector injector = activator 
     100                    .getInjector(EbnfActivator.DE_UGOE_CS_SWE_BNFTOOLS_EBNF); 
     101            EmbeddedEditorFactory factory = injector.getInstance(EmbeddedEditorFactory.class); 
     102            handle = factory.newEditor(resourceProvider).withParent( 
     103                    sashForm); 
     104             
     105             
     106            // keep the partialEditor as instance var to read / write the edited text 
     107            partialEditor = handle.createPartialEditor(true); 
     108            viewer2 = handle.getViewer(); 
     109                final File f = new File(FILE); 
     110        try { 
     111                        String string = FileUtils.readFileToString(f); 
     112                        viewer2.getDocument().set(string); 
     113                } catch (IOException e1) { 
     114                        e1.printStackTrace(); 
     115                } 
     116            viewer2.addTextInputListener(new ITextInputListener() { 
     117                         
     118                        @Override 
     119                        public void inputDocumentChanged(IDocument oldInput, IDocument newInput) { 
     120                                System.out.println("-->save"); 
     121                                XtextDocument d = (XtextDocument) oldInput; 
     122                                System.out.println(oldInput.get()); 
     123                                System.out.println(f.getAbsolutePath()); 
     124                                try { 
     125                                        FileUtils.writeStringToFile(f, oldInput.get()); 
     126                                } catch (IOException e) { 
     127                                        e.printStackTrace(); 
     128                                } 
     129                        } 
     130                         
     131                        @Override 
     132                        public void inputDocumentAboutToBeChanged(IDocument oldInput, 
     133                                        IDocument newInput) { 
     134                        } 
     135                }); 
     136        } 
     137 
     138         
    53139        class ViewLabelProvider extends LabelProvider implements 
    54140                        ITableLabelProvider { 
     
    72158         */ 
    73159        public void createPartControl(Composite parent) { 
    74                 viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL 
     160                sashForm = new SashForm(parent, SWT.HORIZONTAL); 
     161                sashForm.setLayout(new FillLayout()); 
     162                createEditor(); 
     163 
     164                viewer = new TableViewer(sashForm, SWT.MULTI | SWT.H_SCROLL 
    75165                                | SWT.V_SCROLL); 
    76166                viewer.setContentProvider(new ViewContentProvider()); 
Note: See TracChangeset for help on using the changeset viewer.