To gain access to INTViewer modules in NetBeans, you need to load the INTViewer platform:
Start NetBeans and select option Tools->NetBeans Platforms. Select option Add Plaform ... and point to the top folder of your INTViewer distribution (this folder should be named INTViewer).
To build your own modules, you need to add dependencies to INTViewer modules that are included in the distribution. The INTViewer Basics section lists the modules that are almost always needed. Consult this article to manage module dependencies.
The following INTViewer modules are available:
IntviewerCore: for all core functions of INTViewer (ex: IData, always needed)
AllDeps:gathers all external libraries used by INTViewer (almost always needed)
The following modules provide data processing capabilities:
SeismicData: for all seismic data processing (ex: ISeismicData) - almost always needed
HorizonData: for all horizon data processing (ex: IHorizonData)
GridSurfaceData: for all grid surface data processing (ex: IGridSurfaceData)
PointSetData: for all pointset data processing (ex: IPointSetData)
GISData: for all GIS data processing (ex: IGisData)
GocadData: for all gocad/triangle mesh data processing (ex: ITriangleMeshData)
WellData: for all well data processing (ex: IWellData)
FaultData: for all fault data processing (ex: IFaultData)
The following modules are specific to 2D visualization:
Viewer2D: for all 2D visualizations (ex: ILayeredWindow) - almost always needed
Seismic2D: for seismic 2D visualization (ex: IXSectionWindow, IMapWindow) - almost always needed
Horizon2D: for horizon 2D visualization (ex: IHorizonLayer, IMapHorizonLayer)
GridSurface2D: for grid surface 2D visualization (ex: IGridSurfaceLayer, IMapGridSurfaceLayer)
PointSet2D: for pointset 2D visualization (ex: IPointSetLayer, IMapPointSetLayer)
GIS2D: for all GIS (geographic information system) 2D visualizations (ex: IGisLayer)
Gocad2D: for all Gocad/TriangleMesh 2D visualizations (ex: ITriangleMeshLayer, IMapTriangleMeshLayer)
WellTrack2D: for all well log window visualizations (ex: IWellLogWindow, IWellLogVisual)
Well2D: for all well 2D visualizations (ex: IWellLayer, IMapWellLayer)
Fault2D: for all fault 2D visualizations (ex: IFaultLayer, IMapFaultLayer)
The following modules are specific to 3D visualization:
Viewer3D: for all 3D visualizations (ex: IWindow3D)
Seismic3D: for all seismic 3D visualizations (ex: ISeismicVolumeObject3D)
Horizon3D: for all horizon 3D visualizations (ex: IHorizonObject3D)
GridSurface3D: for all grid surface 3D visualizations (ex: IGridSurfaceObject3D)
PointSet3D: for all pointset 3D visualizations (ex: IPointSetObject3D)
Gocad3D: for all Gocad/Triangle Mesh 3D visualizations (ex: ITriangleMeshObject3D)
Well3D: for all well 3D visualizations (ex: IWellObject3D)
Fault3D: for all fault 3D visualizations (ex: IFaultObject3D)
The following modules provide specific features:
Crossplot: for the crossplot window (ex: IXpWindow, IXpLayer)
Calculator: for all seismic calculator data and 2D visualizations (ex: ICalculatorSeismicData, ICalculatorLayer, IMapCalculatorLayer)
FKDisplay: for the F-K display window (ex: IFKWindow, IFKLayer)
F-T Analysis: for the FT analysis window (ex: IFTWindow, IFTLayer)
SpectrumAnalysis: for the spectrum analysis window (ex: ISpectrumWindow, ISpectrumLayer)
FileExplorer: for the file explorer window, no public API exposed
HeaderMap: for the Tools->Create Header Map menu item, no public API exposed
Histogram: for histogram capabilities, common to SeismicHistogram and WellHistogram, no public API exposed
SeismicHistogram: for seismic histogram windows and layers (ex: ISeismicHistogramWindow, ISeismicHistogramLayer)
WellHistogram: for well histogram windows and layers (ex: IWellHistogramWindow, IWellHistogramLayer)
TraceFilters: for the seismic trace filters, no public API exposed
SeismicGenerators: for the seismic generators (ex: IDataGenerator)
TraceHeaderDisplay: for the seismic trace header window, no public API exposed
Data: for the data window, no public API exposed
KmzExport: for the File -> Export to KMZ menu item
ScreenCapture: for the movie and snapshot features, no public API exposed
EditTraceHeader: for the Tools->Create Trace Header menu item, no public API exposed
RMSMap: for the Tools->Create RMS Map menu item, no public API exposed
PythonCore: for the Python capabilities
MatlabCore: for the MATLAB capabilities (ex: IMatlabConnector)
IntviewerHelp: for the help content, no public API exposed
IntviewerUpdateCenters: for the update centers registration, no public API exposed
The following modules are GeoToolkit libraries managed by INT:
JCarnacProWrapper: for all 2D drawing components (J/CarnacPro, see Drawing Shapes)
JSeismicWrapper: for all seismic display components (J/Seismic)
JChartWrapper: for all charting components, including histograms (J/Chart)
JWellLogWrapper: for all well log display components (J/WellLog)
JCarnacGisWrapper: for all GIS format processing and display components (J/CarnacGIS)
JContourWrapper: for all JContour display components (J/Contour)
The following modules provide other features that are not accessible as public API:
SeismicDataAdapterWrapper: for all seismic format processing components, no public API exposed
CgmOutputWrapper: includes libraries for CGM ouput, no public API exposed
IntUtil: for various internal utilities, mainly the cgColorMap API
IntviewerUpdateCenters: defines all update centers managed by INT for INTViewer, no public API exposed
LicenseService: for all licensing validation services, no public API exposed
Other NetBeans modules are sometimes needed. The most common modules are listed below:
Utilities API: Various helper methods and basic concept definitions including actions, image handling, parallel execution and branding support.
UI Utilities API: Various awt helper methods, including org.openide.awt.Mnemonics used by all panels created by NetBeans
DialogsAPI: Various dialog helper methods
File System API: Various file system helper methods
Lookup API: Various helper methods to manage lookups and objects that are lookup providers (almost always needed)
Go to the JUnit section to learn how to add unit tests to your project.
The version number of the INTViewer platform is displayed in the "NetBeans Platform" field of the project properties screen.
The INTViewer/NetBeans platform has its own class loading mechanism. To use the Java ClassLoader.loadClass and ClassLoader.getResourceAsStream methods, obtain the current class loader using Thread.currentThread().getContextClassLoader(). Do not use Class.getClassLoader().
The following code will work:
Class klass = Thread.currentThread().getContextClassLoader().loadClass(fullyQualifiedClassName);
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("com/mycompany/myfile.txt");
The following code will not always work:
Class myClass = ...
Class klass = myClass.getClassLoader().loadClass(fullyQualifiedClassName);
klass.getConstructor(paramKlasses).newInstance(params);
Class myClass = ...
InputStream is = myClass.getResourceAsStream("com/mycompany/myfile.txt");
There are several ways to log errors in a project based upon the INTViewer platform:
The following code will generate 4 logs in the build\testuserdir\var\log\messages.log file of your project.
private static final Logger logger = Logger.getLogger(TestSystemOut.class.getName());
@Override
public void actionPerformed(ActionEvent e) {
new Exception("TEST PRINT STACK TRACE").printStackTrace();
System.out.println("TEST SYSTEM OUT");
logger.log(Level.SEVERE, "TEST LOGGER SEVERE");
logger.log(Level.INFO, "TEST LOGGER INFO");
}
This example was tested with INTViewer 4.5, NetBeans 7.1.2 and Java 1.7.0_03 (64 bit)
For debugging, you can also use the Netbeans debug options, accessible from the "Debug" menu.
When you a develop plugins that require OpenGL rendering, please read these configuration notes for your module suite.
INTViewer 2019 (current version)
INTViewer 2018
INTViewer 5.2
INTViewer 5.1.1
INTViewer 5.1
INTViewer 5.0