{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Incompatible API Changes In INTViewer 5 1 1","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":"incompatible-api-changes-in-intviewer-5-1-1","__idx":0},"children":["Incompatible API Changes In INTViewer 5 1 1"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"incompatible-api-changes-in-intviewer-511","__idx":1},"children":["Incompatible API Changes in INTViewer 5.1.1"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"a-handling-of-model-coordinates-when-extending-abstractlayer2d","__idx":2},"children":["A/ Handling of model coordinates when extending AbstractLayer2D"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This change only affects classes that extend com.interactive.intviewerapi.layers.AbstractLayer2D. If you don't implement your own 2D layers, you are not affected."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following methods have been added to AbstractLayer2D:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"java","header":{"controls":{"copy":{}}},"source":"public Map<String, Double> buildKeyValuesForPoint(Point2D modelPoint, int deviceX, int deviceY);\n\npublic double getDataValue(Point2D modelPoint, int deviceX, int deviceY);\n\npublic Map<String, Double> buildLocatorParameter(Point2D modelPoint, int viewportX, int viewportY);\n","lang":"java"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These methods are similar to the following methods that were meant to be overriden prior to INTViewer 5.1.1:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"    public Map<String, Double> buildKeyValuesForPoint(int deviceX, int deviceY);\n    public double getDataValue(int deviceX, int deviceY);\n    public Map<String, Double> buildLocatorParameter(int viewportX, int viewportY);\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When extending AbstractLayer2D, ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["make sure to override the methods that require a \"modelPoint\" parameter"]}," instead of the methods that don't require this parameter."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This change was made to improve the accuracy of cursor synchronization between windows."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"b-the-propertyprovider-instance-variable-of-abstractpropertyprovidershortcuteditor-and-abstractpropertyprovidershortcutpanel-has-been-removed","__idx":3},"children":["B/ The \"propertyProvider\" instance variable of AbstractPropertyProviderShortcutEditor and AbstractPropertyProviderShortcutPanel has been removed"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["It has been replaced with a weak reference instead."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"    protected T propertyProvider;\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["became"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"    protected WeakReference<T> propertyProviderWeakRef;\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This change typically affects code that extends AbstractVisualAttributesShortcutEditor and AbstractVisualAttributesShortcutPanel. Use the getVisual() method instead."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For code that extends AbstractViewerWindowAttributesShortcutEditor and AbstractViewerWindowAttributesShortcutPanel, use the getViewerWindow() method instead."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For all others cases, use propertyProviderWeakRef.get() instead."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This change was made to facilitate garbage collection when many windows are created in sequence, typically in Python scripts."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"c-layerxml-registrations-for-menus-and-toolbars","__idx":4},"children":["C/ Layer.xml registrations for menus and toolbars"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The declaration of menu items and toolbars have been normalized in INTViewer's internal layer.xml files to meet NetBeans ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"http://bits.netbeans.org/dev/javadoc/org-openide-actions/org/openide/actions/doc-files/api.html"},"children":["architecture guidelines"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Example:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","header":{"controls":{"copy":{}}},"source":"    <folder name=\"Menu\">\n        <folder name=\"File\">\n            <file name=\"com-interactive-intviewer-control-OpenSessionAction.instance\">\n                <attr name=\"position\" intvalue=\"145\"/>\n            </file>\n            <file name=\"com-interactive-intviewer-control-SaveSessionAction.instance\">\n                <attr name=\"position\" intvalue=\"150\"/>\n            </file>\n        </folder>\n    </folder>\n","lang":"xml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["has been changed to:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","header":{"controls":{"copy":{}}},"source":"    <folder name=\"Menu\">\n        <folder name=\"File\">\n            <file name=\"com-interactive-intviewer-control-OpenSessionAction.shadow\">\n                <attr name=\"originalFile\" stringvalue=\"Actions/File/com-interactive-intviewer-control-OpenSessionAction.instance\"/>\n                <attr name=\"position\" intvalue=\"145\"/>\n            </file>\n            <file name=\"com-interactive-intviewer-control-SaveSessionAction.shadow\">\n                <attr name=\"originalFile\" stringvalue=\"Actions/File/com-interactive-intviewer-control-SaveSessionAction.instance\"/>\n                <attr name=\"position\" intvalue=\"150\"/>\n            </file>\n        </folder>\n    </folder>\n","lang":"xml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["As a result, the syntax to hide INTViewer's menu items has changed from:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","header":{"controls":{"copy":{}}},"source":"    <folder name=\"Menu\">\n        <folder name=\"File\">\n            <file name=\"com-interactive-intviewer-control-OpenSessionAction.instance_hidden\" />\n            <file name=\"com-interactive-intviewer-control-SaveSessionAction.instance_hidden\" />\n        </folder>\n    </folder>\n","lang":"xml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["to"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","header":{"controls":{"copy":{}}},"source":"    <folder name=\"Menu\">\n        <folder name=\"File\">\n            <file name=\"com-interactive-intviewer-control-OpenSessionAction.shadow_hidden\" />\n            <file name=\"com-interactive-intviewer-control-SaveSessionAction.shadow_hidden\" />\n        </folder>\n    </folder>\n","lang":"xml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Note than hiding menu item entries is not sufficient. Users can access the associated feature from the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["View"]},"->",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Toolbars"]},"->",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Customize"]}," dialog unless you also hide the action declarations."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Example:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","header":{"controls":{"copy":{}}},"source":"    <folder name=\"Actions\">\n        <folder name=\"File\">\n            <file name=\"com-interactive-intviewer-control-OpenSessionAction.instance_hidden\">\n                <attr name=\"position\" intvalue=\"145\"/>\n            </file>\n            <file name=\"com-interactive-intviewer-control-SaveSessionAction.instance_hidden\">\n                <attr name=\"position\" intvalue=\"150\"/>\n            </file>\n        </folder>\n    </folder>\n","lang":"xml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This change was made to allow the addition of the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tools"]},"->",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Options"]},"->",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Keymaps"]}," dialog."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"d-the-api-to-create-a-spectrum-phase-plot-has-changed","__idx":5},"children":["D/ The API to create a spectrum phase plot has changed"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In INTViewer 5.1, you could display a window showing both spectrum amplitude and phase plots using the following lines:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"ISpectrumPhaseWindow spectrumPhaseWindow = ISpectrumPhaseWindow.factory.createWindow();\nNamedProps windowProps = new NamedProps();\nwindowProps.putProperty(ISpectrumPhaseWindow.SPECTRUM_TYPE, ISpectrumPhaseWindow.AMPLITUDE);\nspectrumPhaseWindow.setProperties(windowProps);\nspectrumPhaseWindow.setReferenceLayer(seismicLayer);\nNamedProps layerProperties = new NamedProps();\nlayerProperties.putProperty(ISpectrumPhaseLayer.USE_FULL_SECTION, true);\nISpectrumPhaseLayer layer = ISpectrumPhaseLayer.factory.createLayer(spectrumPhaseWindow, seismicLayer.getData(), layerProperties, false);\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In INTViewer 5.1.1, a spectrum plot window represents only one side of the plot. Just combine the two windows for an effect similar to the one obtained in 5.1."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["I",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SpectrumPlotWindow"]}]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["spectrumPlotWindow = ISpectrumPlotWindow.factory.createWindow();"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"NamedProps windowProps = new NamedProps();\nwindowProps.putProperty(ISpectrumPlotWindow.SPECTRUM_TYPE, ISpectrumPlotWindow.AMPLITUDE);\nspectrumPlotWindow.setProperties(windowProps);\nspectrumPlotWindow.setReferenceLayer(seismicLayer);\nNamedProps amplitudeLayerProperties = new NamedProps();\namplitudeLayerProperties.putProperty(ISpectrumPlotLayer.USE_FULL_SECTION, true);\nISpectrumPlotLayer layer = ISpectrumPlotLayer.factory.createLayer(spectrumPlotWindow, seismicLayer.getData(), amplitudeLayerProperties, false);\nISpectrumPlotWindow spectrumPhaseWindow = ISpectrumPlotWindow.factory.createWindow();\nNamedProps windowProps = new NamedProps();\nwindowProps.putProperty(ISpectrumPlotWindow.SPECTRUM_TYPE, ISpectrumPlotWindow.PHASE);\nspectrumPhaseWindow.setProperties(windowProps);\nspectrumPhaseWindow.setReferenceLayer(seismicLayer);\nNamedProps phaseLayerProperties = new NamedProps();\nphaseLayerProperties.putProperty(ISpectrumPlotLayer.USE_FULL_SECTION, true);\nISpectrumPlotLayer layer = ISpectrumPlotLayer.factory.createLayer(spectrumPhaseWindow, seismicLayer.getData(), phaseLayerProperties, false);\nICombinedWindow combinedWindow = ICombinedWindow.factory.createWindow();\ncombinedWindow.addViewerWindows(spectrumPlotWindow, spectrumPhaseWindow);\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This change was necessary to accommodate the combined-window-based implementation introduced in 5.1.1"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"e-ipointsetobject3dpoints_rendering-has-been-removed-as-an-option-of-the-ipointsetobject3drendering_type-property","__idx":6},"children":["E/ IPointSetObject3D.POINTS_RENDERING has been removed as an option of the IPointSetObject3D.RENDERING_TYPE property"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The options of IPointSetObject3D.POINTS_RENDERING are now FIXED_SIZE_SYMBOLS_RENDERING and VARIABLE_SIZE_SYMBOLS_RENDERING"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To force a point display, set the IPointSetObject3D.SYMBOL_STYLE to \"Point\""]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This change was made to allow the use of symbols in 3D pointset visualizations."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"f-the-signature-of-the-itrendcalculatorcalculate-method-has-changed","__idx":7},"children":["F/ The signature of the ITrendCalculator.calculate method has changed"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"    public void calculate(IPolylineData polyline, float[] x, float[] y, cgRect limits)\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["has been changed to:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"    public void calculate(float[] x, float[] y, cgRect limits);\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To restrict the trend calculation to a subset defined by a polyline, call ITrendCalculator.setPolylineData(IPolylineData polylineData) prior to calling calculate."]}]},"headings":[{"value":"Incompatible API Changes In INTViewer 5 1 1","id":"incompatible-api-changes-in-intviewer-5-1-1","depth":1},{"value":"Incompatible API Changes in INTViewer 5.1.1","id":"incompatible-api-changes-in-intviewer-511","depth":2},{"value":"A/ Handling of model coordinates when extending AbstractLayer2D","id":"a-handling-of-model-coordinates-when-extending-abstractlayer2d","depth":3},{"value":"B/ The \"propertyProvider\" instance variable of AbstractPropertyProviderShortcutEditor and AbstractPropertyProviderShortcutPanel has been removed","id":"b-the-propertyprovider-instance-variable-of-abstractpropertyprovidershortcuteditor-and-abstractpropertyprovidershortcutpanel-has-been-removed","depth":3},{"value":"C/ Layer.xml registrations for menus and toolbars","id":"c-layerxml-registrations-for-menus-and-toolbars","depth":3},{"value":"D/ The API to create a spectrum phase plot has changed","id":"d-the-api-to-create-a-spectrum-phase-plot-has-changed","depth":3},{"value":"E/ IPointSetObject3D.POINTS_RENDERING has been removed as an option of the IPointSetObject3D.RENDERING_TYPE property","id":"e-ipointsetobject3dpoints_rendering-has-been-removed-as-an-option-of-the-ipointsetobject3drendering_type-property","depth":3},{"value":"F/ The signature of the ITrendCalculator.calculate method has changed","id":"f-the-signature-of-the-itrendcalculatorcalculate-method-has-changed","depth":3}],"frontmatter":{"title":"Incompatible API Changes In INTViewer 5 1 1","pageId":"intviewer-platform-and-modules/incompatible-api-changes-in-intviewer-5-1-1","seo":{"title":"Incompatible API Changes In INTViewer 5 1 1"}},"lastModified":"2026-10-22T14:32:05.577Z","pagePropGetterError":{"message":"","name":""}},"slug":"/solutions/intviewer/intviewer-platform-and-modules/incompatible-api-changes-in-intviewer-5-1-1","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}