{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Visual Property Editors","description":"Accelerate E&P application development and protect your innovation by consuming our Data and Domain APIs / Platform APIs.","lang":"en-US","meta":[{"name":"robots","content":"noindex"}],"llmstxt":{"hide":false}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"visual-property-editors","__idx":0},"children":["Visual Property Editors"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"working-with-visual-property-editors","__idx":1},"children":["Working with Visual Property Editors"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"visual-property-editors-for-your-own-layers","__idx":2},"children":["Visual Property Editors for your own layers"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["An API is provided to implement your own layer property panels. Such panels are typically needed when you implement your own layer, extending the AbstractLayer2D class. To provide layer property panels to your own layers, follow these 3 steps:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["create a panel object"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["create an editor object implementing com.interactive.intviewerapi.IObjectEditorNode"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["make your layer class implement com.interactive.intviewerapi.util.IObjectEditorNodeProvider"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/solutions/intviewer/intviewer-apis-for-dialogs-and-editors/visual-property-editors/sample-layer-property-panel-implementation"},"children":["sample implementation"]}," is provided for triangle mesh 2D layers. A similar implementation can be done for any 3D object or any IVisual."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"visual-property-editors-for-existing-layers","__idx":3},"children":["Visual Property Editors for existing layers"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can plugin your own property editor by extending the VisualPropertyEditor class. To provide layer property panels to an existing layer, follow these 3 steps:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["create a panel object"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["create an editor object extending com.interactive.intviewerapi.VisualPropertyEditor. Make sure this class has an empty constructor and overrides getInstance()"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["register this object in the layer.xml file"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/solutions/intviewer/intviewer-apis-for-dialogs-and-editors/visual-property-editors/sample-layer-property-panel-implementation-for-an-existing-layer"},"children":["sample implementation"]}," is provided for triangle mesh 2D layers. A similar implementation can be done for any 3D object or any IVisual."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When building a property editor, consider using these ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/solutions/intviewer/intviewer-apis-for-dialogs-and-editors/reusable-components"},"children":["reusable components"]},"."]}]},"headings":[{"value":"Visual Property Editors","id":"visual-property-editors","depth":1},{"value":"Working with Visual Property Editors","id":"working-with-visual-property-editors","depth":2},{"value":"Visual Property Editors for your own layers","id":"visual-property-editors-for-your-own-layers","depth":3},{"value":"Visual Property Editors for existing layers","id":"visual-property-editors-for-existing-layers","depth":3}],"frontmatter":{"title":"Visual Property Editors","pageId":"intviewer-apis-for-dialogs-and-editors/visual-property-editors","seo":{"title":"Visual Property Editors"}},"lastModified":"2026-10-22T14:32:05.575Z","pagePropGetterError":{"message":"","name":""}},"slug":"/solutions/intviewer/intviewer-apis-for-dialogs-and-editors/visual-property-editors","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}