data objects editors
play

Data Objects & Editors David Strupl Staff Engineer Sun - PowerPoint PPT Presentation

Data Objects & Editors David Strupl Staff Engineer Sun Microsystems Agenda DataObject Factories Presentation Editor APIs > Schliemann > Lexer > Folding > Highlighting > Code completion > ... Certified


  1. Data Objects & Editors David Strupl Staff Engineer Sun Microsystems

  2. Agenda • DataObject • Factories • Presentation • Editor APIs > Schliemann > Lexer > Folding > Highlighting > Code completion > ... Certified Engineer Course

  3. DataObject • Logical object around a FileObject > Understands the file's content > Copy, move, shadow, createFromTemplate > Can represent multiple files (not recommended) • Factories > A module installs a DataLoader for a particular file type > Usually registered by MIME type + file extension > That loader is a factory for DataObjects for that type of file Certified Engineer Course

  4.  DataObjects provide > A Lookup – you can query for objects you know about > A Node – to represent it in the UI > A way to have an object that survives file rename/move Certified Engineer Course

  5. DataLoader • Factory > by mime type > by extension • Context Actions > String actionsContext(); > Path to a folder in the system filesystem (layer.xml file) > Can be regular javax.swing.Actions • Can have persistent state Certified Engineer Course

  6. FileSystems vs. Loaders API • One type vs. multiple types • One file vs. group of files • Raw data vs. operations on content > Think of a DataObject as representing a (potentially) parsed file A.java A.class B.properties B_ja.properties Certified Engineer Course

  7. Visualizing DataObjects • A DataObject has a... NODE! DataObject.getNodeDelegate() Certified Engineer Course

  8. Diagram of API Layers Certified Engineer Course

  9. Files, DataObjects, Nodes, Explorer • One set of APIs – but two usages: > 1. Visualizing and interacting with real files on disk > 2. Visualizing and interacting with parts of NetBeans configuration Files on disk are a filesystem. The “system filesystem” is also a filesystem A registry of configuration information, read/write Many pieces of UI in NetBeans are just a view of some folder in the System Filesystem Menus, Toolbars, nodes in the Services tab Certified Engineer Course

  10. DataObject Classes • DataObject > base API class, default data object • MultiDataObject > abstract support class – may represent >1 file • DataFolder • DataShadow – like a unix symbolic link • InstanceDataObject – represents an object > settings management - .instance files register an object in the system Certified Engineer Course filesystem – different folders have

  11. Visual Creation • /Templates && TemplateWizard Certified Engineer Course

  12. Templating Languges • Any scripting language > javax.script.ScriptEngine > http://scripting.dev.java.net • Support for Freemarker > substitutions > variables > cycles • CreateFromTemplateAttributeProvider • TemplateWizard.putProperty(xxx) -> $ {wizard.xxx} Certified Engineer Course

  13. Visual Representation • Represented by Nodes > DataObjects are the model > Nodes are the presentation of the model > They add human-friendly attributes – name, icon, etc. • DataObject.getNodeDelegate() > DataNode - premade superclass > FolderNode & FolderChildren • Write you own hierarchy > projects > files > favorites Certified Engineer Course

  14. Context of a DataObject • DataObject.getLookup() > added in 6.0 – previously > DataObject.getCookie(Class type) or DataObject.getNodeDelegate().getLookup() • In case of MultiDataObject > getCookieSet().getLookup() • Can be controlled by > getCookieSet().assign(Data.class, data) Certified Engineer Course

  15. Text Editor • API for accessing > EditorCookie > OpenCookie > EditCookie • Supporting classes > CloneableEditorSupport > CloneableEditor > DataEditorSupport Certified Engineer Course

  16. Editor APIs • Syntax coloring • Code folding • Navigation • Code completion • Brace matching • Actions • Tooltips • Hyperlinks • Indentation • Annotations (e.g. error lines). Certified Engineer Course

  17. Schliemann • NBS files • Simple languages > LL(k) • “Real” languages support by the IDE use editor APIs directly Certified Engineer Course

  18. Conclusion • DataObject > logical view over a file > created by factories • Extensible via layers > actions > templates • Visualized by Nodes • Content edited by editors Certified Engineer Course

  19. DEMO • File Type Integration

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend