API / geotoolkit / welllog / multiwell / MultiWellWidget / MultiWellWidget
multiwell.MultiWellWidget.MultiWellWidget
The MultiWell widget is a widget that provides a base multi well container functionality. By default, a Multi Well Correlation Widget has a track container, header and footer containers, and default tools. A track container can display different well tracks, correlation panels, or log tracks. The wells can be visualized with different depth scales and offsets. The well track is based on WellLog widget functionality and supports all visuals and templates supported for single well visualization. Wells are located in track container, which can have own model limits, units and scale factors.
The Default tools include:
- Horizontal scrollbar
- Panning
- Zoom
Example
import {MultiWellWidget} from '@int/geotoolkit/welllog/multiwell/MultiWellWidget';
import {TrackType as MultiTrackType} from '@int/geotoolkit/welllog/multiwell/TrackType';
import {Range} from '@int/geotoolkit/util/Range';
import {TrackType} from '@int/geotoolkit/welllog/TrackType';
import {CorrelationTrack} from '@int/geotoolkit/welllog/multiwell/CorrelationTrack';
import {CorrelationMarker} from '@int/geotoolkit/welllog/multiwell/correlation/CorrelationMarker';
import {LogMarker} from '@int/geotoolkit/welllog/LogMarker';
import {LineStyle} from '@int/geotoolkit/attributes/LineStyle';
import {TextStyle} from '@int/geotoolkit/attributes/TextStyle';
import {AnchorType} from '@int/geotoolkit/util/AnchorType';
// Create the empty widget
const widget = new MultiWellWidget().setLayoutStyle({'left': 0, 'top': 0, 'right': 0, 'bottom': 0});
// Add the first well
const well1 = widget.addTrack(MultiTrackType.WellTrack, {
'range': new Range(0, 500),
'welllog': {
'range': new Range(4500, 5000)
}
});
// Add the correlation track
const correlationTrack1 = widget.addTrack(MultiTrackType.CorrelationTrack, {
'width': 50
});
// add the second well
const well2 = widget.addTrack(MultiTrackType.WellTrack, {
'range': new Range(50, 300),
'welllog': {
'range': new Range(2500, 5000)
}
});
// Add data to the wells
function addWellData (well: WellTrack, startDepth: number) {
well.addTrack(TrackType.IndexTrack);
well.addTrack(TrackType.LinearTrack)
.addChild([
createCurve(createTestData(startDepth, 10, 'GR'))
.setLineStyle(new LineStyle(Helpers.getColor('green'), 1)),
createCurve(createTestData(startDepth, 10, 'CALI'))
.setLineStyle(new LineStyle(Helpers.getColor('orange'), 1))
]);
}
// Add tops as a logMarker
function addTops(well: WellTrack, name: string, depth: number, color: string) {
const top = new LogMarker(depth);
top.setLineStyle(LineStyle.fromObject({'color': color}));
top.setTextStyle(TextStyle.fromObject({
'color': color,
'alignment': "left",
'font': "12px sans-serif"
}));
top.setNameLabel(name);
top.setNameLabelPosition(AnchorType.TopCenter);
top.setDepthLabel(depth);
top.setDepthLabelPosition(AnchorType.BottomCenter);
well.getMarkerLayer().addChild(top);
}
// Add the correlation between the wells.
function addTopsCorrelation(track: CorrelationTrack, leftDepth: number, rightDepth: number, color) {
track.addChild(new CorrelationMarker({
'linestyle': {
'color': color,
'width': 2,
'pixelsnapmode': {'x': true, 'y': true}
},
'leftdepth': leftDepth,
'rightdepth': rightDepth
}));
}↳
MultiWellWidget
Constructors
Methods
Css Properties
| Name | Type | Description |
|---|---|---|
attachedheaders | boolean | Attached well headers and footers |
autotrackslimits | boolean | Calculates content model limits based on tracks position as union |
autowellsoncorrelationtrack | boolean | Automatically sets left and right well for correlation track |
deviceunit | string | Device unit for content to apply scale |
horizontalscrollable | boolean | Defines if plot displays horizontal scrollbars |
indent | number | Indent between tracks |
indexunit | string | Model limits' unit in vertical direction |
offscreentrackpanning | number | A percent of how much track should remain in the visible space when panning a track |
orientation | Orientation | Orientation |
verticalscrollable | boolean | Defines if plot displays vertical scrollbars | object containing specific settings for all three containers |
viewcache | boolean | Enable tiled cache. It increases rendering performance for historical data |
visiblelimits | Rect | Define visible content limits in model coordinates |
visiblelimits-height | number | Height |
visiblelimits-readonly | boolean | Readonly |
visiblelimits-width | number | Width |
visiblelimits-x | number | Left |
visiblelimits-y | number | Top |
Constructors
• new MultiWellWidget(options?)
Creates MultiWellWidget
| Name | Type | Description |
|---|---|---|
Optional options | Options | options |
BaseWidget.constructor
Methods
▸ addAnnotation(name, item): MultiWellWidget
Add annotation to annotation container
▸ addBaseLayer(baseLayer): MultiWellWidget
Add baseLayer to container
this
▸ addChild(node): MultiWellWidget
Add a child node
this
▸ addCssClass(cssclass): MultiWellWidget
Adds new css class to node
| Name | Type | Description |
|---|---|---|
cssclass | string | string[] | css class name('s) |
this
▸ addInvalidateHandler(handler): MultiWellWidget
Add invalidate handler
Deprecated
since 4.0, use Node.on instead
| Name | Type | Description |
|---|---|---|
handler | Function | handler to be notified about invalidation |
this
BaseWidget.addInvalidateHandler
▸ addOverlay(overlay): MultiWellWidget
Add overlay to container
this
▸ addTrack(track, options?): CorrelationTrack
Add track, well to the container.
By default well track track has size specified in the range options and depth range specified in the options welllog
Example
// The code below shows how to create a well track with position from 0 to 300 in the model coordinates and depth range from 500 to 1000
import {TrackType} from '@int/geotoolkit/welllog/multiwell/TrackType';
import {Range} from '@int/geotoolkit/util/Range';
const well = widget.addTrack(TrackType.WellTrack, {
'width': 400,
'range': new Range(0, 300),
'welllog': {
'range': new Range(500, 1000)
}
});Example
// The code below shows how to create a well track to provide the first parameter
import {TrackType} from '@int/geotoolkit/welllog/multiwell/TrackType';
import {Range} from '@int/geotoolkit/util/Range';
const well = widget.addTrack({
'type': TrackType.WellTrack
'width': 400,
'range': new Range(0, 300),
'welllog': {
'range': new Range(500, 1000)
}
});| Name | Type | Description |
|---|---|---|
track | CorrelationTrack | track to add |
Optional options | Options | options additional options if track has a TrackType |
▸ addTrack(track, options?): WellTrack
▸ addTrack(track, options?): ProxyWellTrack
| Name | Type |
|---|---|
track | ProxyTrack |
Optional options | Options |
▸ addTrack(track): ITrack
| Name | Type |
|---|---|
track | Track |
▸ addTrack(track, options?): ITrack
▸ addTrack(track, options?): ITrack[]
ITrack[]
▸ adjustEqualDistance(width): MultiWellWidget
Set all correlation tracks of equal width
| Name | Type | Description |
|---|---|---|
width | number | width to adjust correlation tracks |
this
▸ adjustPosition(area?, vAlign?, hAlign?): MultiWellWidget
Adjust position of node to specified area
| Name | Type | Description |
|---|---|---|
Optional area | Rect | specified area. Default to Parent Model Limits |
Optional vAlign | string | vertical alignment. It can be "top", "bottom", "center". Defaults to "top". |
Optional hAlign | string | horizontal alignment It can be "left", "right", "center". Defaults to "left". |
this
▸ adjustProportionalDistance(scale): MultiWellWidget
Set correlation track widths proportional to well distanse
| Name | Type | Description |
|---|---|---|
scale | number | real world units to pixels conversion factor |
this
▸ alignToDepth(depth, alignment?, containment?): MultiWellWidget
Distributes the same alignment to all tracks with regard to the top, the bottom or center of wells.
| Name | Type | Description |
|---|---|---|
depth | number | a new wells depth to be aligned to |
Optional alignment | string | alignment of track according to container visible limits. alignment value is "top", "bottom", "center". |
Optional containment | boolean | verify if a track contains depth. If it is true and track doesn't have specified depth then it will be scrolled to the top. |
this
▸ alignToMarker(name, alignment?): MultiWellWidget
Distributes the same alignment to all tracks with regard to the top, the bottom or center of wells by marker name. If track doesnt' have specified marker then it will be scrolled to top.
| Name | Type | Description |
|---|---|---|
name | string | (n: Node) => boolean | marker name or function to find marker |
Optional alignment | string | vertical alignment of track according to container visible limits. alignment value is "top", "bottom", "center" |
this
▸ alignToMarkers(names?): MultiWellWidget
Level the tops to adjust or "flat" them so that they lie level across all the well tracks. This may involve stretching or squeezing the spaces between the tops to level them.
| Name | Type | Description |
|---|---|---|
Optional names | string[] | marker names |
this
▸ alignTracks(offset?, alignment?): MultiWellWidget
Align tracks by the top position
| Name | Type | Description |
|---|---|---|
Optional offset | number | offset in container coordinates |
Optional alignment | string | vertical alignment of tracks in container. It can be 'top', 'bottom', 'center' |
this
▸ Protected applyOpacity(context): MultiWellWidget
This method is called to apply opacity if it is specified on the rendering context. The default implementation sets global alpha on the rendering context
| Name | Type | Description |
|---|---|---|
context | RenderingContext | Rendering Context |
this
▸ Protected applyResponsiveStyle(): void
Apply a responsive style rules it is exists
void
BaseWidget.applyResponsiveStyle
▸ beginExport(): MultiWellWidget
Used to prepare object before exporting
this
▸ changeBaseLayerOrder(overlay, order, anchor?): MultiWellWidget
Changes the z-order of the baseLayer.
| Name | Type | Description |
|---|---|---|
overlay | Node | |
order | NodeOrder | position to be added |
Optional anchor | Node | anchor node to specify changeOrder with respect to this node |
this
BaseWidget.changeBaseLayerOrder
▸ changeChildOrder(node, order, anchor?): MultiWellWidget
changes the z-order of the nodes being rendered.
| Name | Type | Description |
|---|---|---|
node | Node | any child added in the Composite node |
order | NodeOrder | position to be added |
Optional anchor | Node | anchor node to specify changeOrder with respect to this node |
this
▸ changeOverlayOrder(overlay, order, anchor?): MultiWellWidget
Changes the z-order of the overlay.
| Name | Type | Description |
|---|---|---|
overlay | Node | child overlay |
order | NodeOrder | position to be added |
Optional anchor | Node | anchor node to specify changeOrder with respect to this node |
this
▸ changeTrackOrder(track, order, anchor?): MultiWellWidget
changes the layout order of the tracks being rendered.
| Name | Type | Description |
|---|---|---|
track | ITrack | child track in the MultiWellWidget |
order | NodeOrder | position to be added |
Optional anchor | ITrack | anchor track to specify changeOrder with respect to this track |
this
▸ checkCollision(context): boolean
Check culling Returns true if object is inside of renderable area
| Name | Type | Description |
|---|---|---|
context | RenderingContext | Rendering Context |
boolean
true if node is collided
▸ clearBaseLayers(disposeBaseLayers?): MultiWellWidget
Remove all child baseLayers from group
| Name | Type | Description |
|---|---|---|
Optional disposeBaseLayers | boolean | automatically dispose baseLayers. If it is true then method dispose is called for each baseLayer, false by default |
this
▸ clearCache(): MultiWellWidget
Clear cache
this
▸ clearChildren(disposeChildren?): MultiWellWidget
Remove all child nodes from this composite group
| Name | Type | Description |
|---|---|---|
Optional disposeChildren | boolean | automatically dispose children. If it is true then method dispose is called for each child. |
this
▸ clearOverlays(disposeOverlays?): MultiWellWidget
Remove all child overlays from group
| Name | Type | Description |
|---|---|---|
Optional disposeOverlays | boolean | automatically dispose overlays. If it is true then method dispose is called for each overlay, false by default |
this
▸ clearTracks(disposeTracks?): MultiWellWidget
Remove all tracks from this widget
| Name | Type | Description |
|---|---|---|
Optional disposeTracks | boolean | automatically dispose tracks and headers. If it is true then method dispose is called for each tracks. |
this
All subclasses should override copyConstructor or provide custom implementation for this method
clone
▸ connect(object, orientation?): MultiWellWidget
Synchronizes axis or group with a track container model
| Name | Type | Description |
|---|---|---|
object | Axis | Group<Node> | object to connect to the central component |
Optional orientation | Orientation | model orientation |
▸ connectStyle(style, type, callback): MultiWellWidget
Connects style.
This convenience method subscribes a listener to given style for the specified type.
And automatically un-subscribes listener if node is disposed to prevent memory leaks
| Name | Type | Description |
|---|---|---|
style | EventDispatcher | connect style |
type | string | type of event or property |
callback | AttributeCallback<EventDispatcher> | function to be called |
this
▸ connectTool(tool): MultiWellWidget
Connect a new tool with a toolname to the widget
| Name | Type | Description |
|---|---|---|
tool | AbstractTool | AbstractTool[] | tool associated with the widget |
this
▸ convertModelDepthToTrackDepth(track, depth): number
Convert track container vertical space to track depth
| Name | Type | Description |
|---|---|---|
track | ITrack | track |
depth | number | depth |
number
▸ convertTrackDepthToModelDepth(track, depth): number
Convert track depth to container vertical model space
| Name | Type | Description |
|---|---|---|
track | ITrack | track |
depth | number | depth |
number
▸ Protected copyConstructor(src, deepCopy?): MultiWellWidget
Copy constructor function.
Function used as part of the cloning mechanism.
Implementations should copy the given instance state to this instance.
this
▸ createTrack(track, options?): CorrelationTrack
A factory method to create an instance of the track
See
WellLogWidget for all available options for wellllog properties of the well track
Example
title supports templates with HTML
import {TrackType} from '@int/geotoolkit/welllog/TrackType';
_multiWellWidget.createTrack(TrackType.WellTrack, {
'title': '<b>Well ' + (_wellIndex++) + '</b><p>1 ${deviceUnit} : ${scaleValue} ${scaleUnit}</p>'
});
Supported keywords:
${name} - track name
${deviceUnit} - device unit symbol
${scaleValue} - scale value
${scaleUnit} - scale unit symbol| Name | Type | Description |
|---|---|---|
track | CorrelationTrack | |
Optional options | Options | options |
▸ createTrack(track, options?): WellTrack
▸ createTrack(track, options?): ProxyWellTrack
| Name | Type |
|---|---|
track | ProxyTrack |
Optional options | Options |
▸ createTrack(type, options?): ITrack
| Name | Type |
|---|---|
type | TrackType |
Optional options | TrackOptions |
▸ disconnectStyle(style, type, callback): MultiWellWidget
Disconnect style
This convenience method un-subscribes a listener to given style for the specified type.
| Name | Type | Description |
|---|---|---|
style | EventDispatcher | connect style |
type | string | type of event or property |
callback | AttributeCallback<EventDispatcher> | function to be called |
this
▸ disconnectTool(tool): MultiWellWidget
Disconnect the tool from the widget
| Name | Type | Description |
|---|---|---|
tool | AbstractTool | AbstractTool[] | tool to disconnect |
this
▸ dispose(): void
Dispose node. Clear all listeners and disconnect style to avoid memory leaks
void
▸ Protected drawBorder(localContext, bounds?): MultiWellWidget
Draws a rectangle at the bounding box (in parent coordinates)
| Name | Type | Description |
|---|---|---|
localContext | RenderingContext | The local rendering context |
Optional bounds | Rect | group bounds |
this
▸ enableClipping(doClip): MultiWellWidget
Enables or disables clipping of this node. If enabled, shapes will not be rendered outside of its bounds.
| Name | Type | Description |
|---|---|---|
doClip | boolean | enable clipping on this node |
this
▸ enableEventPropagation(enable): MultiWellWidget
Enable event propagation from the node hierarchy from bottom to top
This option is similar to DOM Event bubbling, which allows to get any event from child node. By default it is disabled for better performance.
Example
import {Group} from '@int/geotoolkit/scene/Group';
import {Events as SceneEvents} from '@int/geotoolkit/scene/Node';
const parentGroup = new Group()
.setName('ParentGroup')
.enableEventPropagation(true);
const childGroup = new Group()
.setName('ChildGroup');
parentGroup.addChild(childGroup);
parentGroup.on(SceneEvents.Invalidate, (eventName, sender, args) => {
// Got notifications from all children of parent group
});
childGroup.invalidate();| Name | Type | Description |
|---|---|---|
enable | boolean | enable |
this
BaseWidget.enableEventPropagation
▸ enablePickingChildren(enable): MultiWellWidget
Enables or disables picking children
| Name | Type | Description |
|---|---|---|
enable | boolean | enable picking children |
this
BaseWidget.enablePickingChildren
▸ endExport(): MultiWellWidget
Used to restore object's state after exporting
this
▸ enumerateNodes(callback, target?): void
Executes a provided function once for each child node
| Name | Type | Description |
|---|---|---|
callback | Callback<Node> | provided function |
Optional target | QueryBuilder<any> | target to pass to callback as a second parameter |
void
▸ execute(delegate): MultiWellWidget
Executes delegate and return the result. It allows us to keep all initialization calls in one place,
and we do not need to scroll up or down in IDE to find how and where it was initialized.
Example
// All setters (.setName() for example) returns reference to the this.
// In order to modify inner object like LineStyle or Pattern, to get this object (property) we should call getter to get object reference.
// Then modify it as shown below in Option 1 or you can use execute methods shown in Option 2.
import {Group} from '@int/geotoolkit/scene/Group';
import {Rect} from '@int/geotoolkit/util/Rect';
// Option 1
const group = new Group()
.setName('MyGroup')
.setBounds(new Rect(0, 0, 42, 16))
.enableClipping(true)
.setTag({'type': 'sometype'});
group.getLineStyle().setPattern('pattern');
return group;
// Options 2 ( using execute method )
return group
.execute(function () {
this.getLineStyle()
.setPattern("pattern");
});| Name | Type | Description |
|---|---|---|
delegate | (this: MultiWellWidget) => void | Function to execute |
The result if any or this
▸ execute<T>(delegate): T
| Name |
|---|
T |
| Name | Type |
|---|---|
delegate | (this: MultiWellWidget) => T |
T
▸ exportToPdf(options?): Promise<IWritable>
Exports the widget content as a PDF file, user has option to select the scale of track in pdf.
| Name | Type | Description |
|---|---|---|
Optional options | ExportToPdfOptions | option to specify paper parameters and header and footer |
Promise<IWritable>
promise with output stream
▸ Protected filter(context): boolean
Filter node
| Name | Type | Description |
|---|---|---|
context | RenderingContext | Rendering Context |
boolean
flag filter flag ("true" to render node; "false" otherwise)
▸ fitToHeight(): MultiWellWidget
Fit the whole tracks height in the visible area
this
▸ fitToWidth(tracksWidth?): MultiWellWidget
Resize widget width to fit it in visible area
| Name | Type | Description |
|---|---|---|
Optional tracksWidth | number | new track width |
this
▸ forEachVisual(callback): void
Enumeratisual in track container
| Name | Type | Description |
|---|---|---|
callback | (item: Node) => void | callback method |
void
▸ getAnimationStyle(): AnimationStyle
Return animation style
animationStyle current animation style
▸ getAnnotation(location): Group<Node>
Gets annotation at specified location
| Name | Type | Description |
|---|---|---|
location | string | Enum of annotation locations used to specify direction to insert |
▸ getAutoModelLimitsMode(): boolean
Get Model Limits Logics to use when no Model Limits have been set set to true: will use parents width and height, starting at 0 set to false: will use parents bounds
boolean
mode
BaseWidget.getAutoModelLimitsMode
▸ getAutoModelLimitsStrategy(): ModelLimitsStrategy
Get Model Limits Logics Strategy
strategy
BaseWidget.getAutoModelLimitsStrategy
▸ getBaseLayer(index): Node
Return baseLayer at specified index
| Name | Type | Description |
|---|---|---|
index | number | index at which to get the baseLayer for |
track
▸ getBaseLayers<S>(predicate, modify?): Iterator<Node>
Return iterator by baseLayers nodes
| Name | Type |
|---|---|
S | extends Node<S> |
| Name | Type | Description |
|---|---|---|
predicate | (value: Node) => value is S | a filter function |
Optional modify | boolean | An option to specify if the iterator supports adding/removing items from the collection. false by default. |
▸ getBaseLayers(filter?, modify?): Iterator<Node>
Returns an iterator for child baseLayers. The iterator does not support adding or deleting items from overlays by default. If it is necessary to modify a collection of overlays, pass true as the last parameter.
Example
// Gets a writable iterator
const it = node.getOverlays(null, true);| Name | Type | Description |
|---|---|---|
Optional filter | (node: Node) => boolean | A filter function. Returns all overlays if null. |
Optional modify | boolean | An option to specify if the iterator supports adding/removing items from the collection. false by default. |
An iterator for child overlays.
▸ getBaseLayersCount(): number
Returns amount of baseLayers
number
▸ getBounds(): Rect
Get the bounds in the parents model space. If bounds are not set, then parent model limits are used.
current bounds
▸ getCache(): Cache
Return cache strategy to be used to cache children nodes
cache
▸ getCenterDepthLimits(): Range
Returns depth range of the center container.
▸ getCenterModelLimits(): Rect
Return center model limits
model limits of the tracks
▸ getCenterVisibleDepthLimits(): Range
Return a depth range, which is visible now of the center container
▸ getCenterVisibleModelLimits(): Rect
Returns visible center model limits
visible center model limits
▸ getChild(i): Node
Return node by index
| Name | Type | Description |
|---|---|---|
i | number | index of the node |
▸ getChildren<S>(predicate, modify?): Iterator<S>
Return iterator by child nodes
| Name | Type |
|---|---|
S | extends Node<S> |
| Name | Type | Description |
|---|---|---|
predicate | (value: Node) => value is S | a filter function |
Optional modify | boolean | An option to specify if the iterator supports adding/removing items from the collection. false by default. |
Iterator<S>
▸ getChildren(filter?, modify?): Iterator<Node>
Returns an iterator for child nodes. The iterator does not support adding or deleting items from children by default. If it is necessary to modify a collection of children, pass true as the last parameter.
Example
// Gets a writable iterator
const it = node.getChildren(null, true);| Name | Type | Description |
|---|---|---|
Optional filter | (node: Node) => boolean | A filter function. Returns all nodes if null. |
Optional modify | boolean | An option to specify if the iterator supports adding/removing items from the collection. false by default. |
An iterator for child nodes.
▸ getChildrenCount(): number
Return number of child nodes
number
▸ getClassName(): string
string
▸ getClipStyle(): ClipStyle
Gets the current clipping style
clipping style
▸ getContentOrientation(): Orientation
Return content orientation
content orientation
BaseWidget.getContentOrientation
▸ getContentsArea(transformation?): Rect
Return area without paddings. Model limits are mapped to content area, where children are layout.
| Name | Type | Description |
|---|---|---|
Optional transformation | Transformation | scene transformation |
▸ getContentsTransform(): Transformation
getContentsTransform() retrieves the world transformation of the node.
transformation from model coordinates to bounds of the group
BaseWidget.getContentsTransform
▸ getCss(): CssStyle
Return CSS style
▸ getCssClass(): string
Returns css class name to be used to apply CSS style
string
the css class name
▸ getCssClasses(): string[]
Gets list of css class names which applied to this node
string[]
▸ getCssTransform(): string
Returns CSS transformation
string
▸ getData(): AbstractDataTable | DataSource
returns data source
AbstractDataTable | DataSource
▸ getDataBinding(): DataBinding
Return the data binding
▸ getDesiredHeight(): string | number
Returns desired height of the group as a layoutable object This method is a helper method to get access to getLayoutStyle()
string | number
desired height ("undefined" by default)
▸ getDesiredWidth(): string | number
Returns desired width of the group as a layoutable object. This method is a helper method to get access to getLayoutStyle()
string | number
desired width ("undefined" by default)
▸ getDeviceLimits(): Rect
Return device limits
▸ getDistanceStrategy(): AbstractDistanceStrategy
Returns strategy to compute distance between wells
distance strategy
▸ getExportElement(options?): AbstractDocumentElement
Returns exportable element
| Name | Type | Description |
|---|---|---|
Optional options | ExportToPdfOptions | export options |
return exportable element
▸ getExportLimits(): Rect
Return export model limits
▸ getExportScale(): Object
Return export scale
Object
| Name | Type |
|---|---|
scalex | number |
scaley | number |
▸ getFillStyle(): FillStyle
Return fill style
fillStyle current fill style
▸ getFixedTracksWidth(): boolean
Returns mode to keep fixed width of tracks and wells for horizontal scale
boolean
▸ getFooterContainer(): HeaderContainer<Node>
Returns footer container. Note that container's bounds are not necessary match with its visible limits as it can reside in other container. To get/set device footer size, use get/set FooterHeight() method. if footer visible option is 'none' then equals to null
▸ getFooterHeight(options?): number
Returns actual footer height or model height whenever 'auto' is specified
| Name | Type | Description |
|---|---|---|
Optional options | string | header options, |
number
▸ getHeaderContainer(): HeaderContainer<Node>
Returns header container. Note that container's bounds are not necessary match with its visible limits as it can reside in other container. To get/set device header size, use get/set HeaderHeight() method. if header visible option is 'none' then equals to null
▸ getHeaderHeight(options?): number
Returns actual header height or model height whenever 'auto' is specified
| Name | Type | Description |
|---|---|---|
Optional options | string | header options |
number
▸ getId(): string | number
Returns the associated identifier of the node
string | number
The node's id
▸ getIndexUnit(): AbstractUnit
Gets index unit
▸ getInfiniteMode(): boolean
Return infinity mode flag
boolean
flag
▸ Protected getInvalidateMethod(): AttributeCallback<EventDispatcher>
Gets invalidate method
AttributeCallback<EventDispatcher>
method to invalidate this object
BaseWidget.getInvalidateMethod
▸ getLayout(): Layout
Returns layout associated with the group
layout
▸ getLayoutStyle(): LayoutStyle<string | number>
return desired layout style
LayoutStyle<string | number>
▸ getLineStyle(): LineStyle
Return border style
▸ getLocalTransform(): Transformation
Retrieves the transformation of bounds to parent
transform the local transform.
▸ getMarginsStyle(): SpaceStyle<string | number>
Return margins style
SpaceStyle<string | number>
▸ getModelDepthScale(scaleUnit?, deviceUnit?): number
Return scale of model context to device. How many scale units in one device unit in the vertical direction.
Example
// How to get the current depth scale of multiwell widget.
import {UnitFactory} from '@int/geotoolkit/util/UnitFactory';
const uf = UnitFactory.getInstance();
WellLogWidget.getModelDepthScale(uf.getUnit('cm'), uf.getUnit('cm'));| Name | Type | Description |
|---|---|---|
Optional scaleUnit | string | AbstractUnit | scale unit of the display. if it is not specified then it takes from track container |
Optional deviceUnit | string | AbstractUnit | device unit of the display. if it is not specified then it takes from track container |
number
a index scale to device or NaN if scale is not available
▸ getModelLimits(): Rect
Gets model limits, the limits of this groups inside space
the current model limits
▸ getModelTrackSize(track): Rect
Return model track size and position in the model coordinates consider offset and scale.
| Name | Type | Description |
|---|---|---|
track | ITrack | track to return size |
return model position and size
▸ getName(): string
Returns the node name
string
The node name
▸ getOpacity(): number
Returns current node opacity
number
opacity
▸ getOpacityBlendMode(): BlendMode
Returns current node opacity
opacity blend mode
BaseWidget.getOpacityBlendMode
▸ getOptions(): OptionsOut
Returns widget options It is a same as getProperties
▸ getOrientation(): Orientation
▸ getOverlay(index): Node
Return overlay at specified index
| Name | Type | Description |
|---|---|---|
index | number | index at which to get the overlay for |
track
▸ getOverlayAt(index): Node
Return overlay at specified index
Deprecated
since 4.2 use getOverlay instead
| Name | Type | Description |
|---|---|---|
index | number | index at which to get the overlay for |
track
▸ getOverlayLayer(): Layer<Node>
Returns manipulator overlay to draw shapes that should move with the model
▸ getOverlays<S>(predicate, modify?): Iterator<Node>
Return iterator by overlays nodes
| Name | Type |
|---|---|
S | extends Node<S> |
| Name | Type | Description |
|---|---|---|
predicate | (value: Node) => value is S | a filter function |
Optional modify | boolean | An option to specify if the iterator supports adding/removing items from the collection. false by default. |
▸ getOverlays(filter?, modify?): Iterator<Node>
Returns an iterator for child overlays. The iterator does not support adding or deleting items from overlays by default. If it is necessary to modify a collection of overlays, pass true as the last parameter.
Example
// Gets a writable iterator
const it = node.getOverlays(null, true);| Name | Type | Description |
|---|---|---|
Optional filter | (node: Node) => boolean | A filter function. Returns all overlays if null. |
Optional modify | boolean | An option to specify if the iterator supports adding/removing items from the collection. false by default. |
An iterator for child overlays.
▸ getOverlaysCount(): number
Returns amount of overlays
number
▸ getPaddingStyle(): SpaceStyle<string | number>
Return padding style
SpaceStyle<string | number>
padding
▸ getParent(): Node
Return parent node
parent node
▸ getPreferredSize(): Rect
Return preferred size to layout children
▸ getProperties(): OptionsOut
Gets all the properties pertaining to this object
properties
▸ getProperty(name): any
Gets dynamic property by name. These properties can be used as a property bags
| Name | Type | Description |
|---|---|---|
name | string | property name |
any
▸ getPropertyKeys(): string[]
Returns known properties keys
string[]
▸ getRenderingFilter(): IFilter
Return filter to be used for rendering and picking
current filter
▸ getResponsiveStyle(): ResponsiveStyle
Return responsive style
▸ getRoot(): Node
Returns root node.
If node doesn't have parent then it returns itself.
the root node
▸ getScaleScrollStrategy(): Delegate
Gets ScaleScrollStrategy ("undefined" by default)
ScaleScrollStrategy
BaseWidget.getScaleScrollStrategy
▸ getSceneTransform(): Transformation
Returns transformation from node to root scene
a transformation from node to root scene
▸ getSelectedTrack(): ITrack
Returns selected Well Track
well track
▸ getTag(): any
Returns the object associated with the node by user.
any
The node's user-object
▸ getTool(): CompositeTool
Returns root tool associated to this widget
▸ getToolByName<T>(toolName): Tools[T]
Returns the tool matching the given name.
This function also accepts tool 'path' instead of absolute name.
For example:
getToolByName("compositeTool.panningTools.trackPanning.TrackPanning")
Would return the same tool as
getToolByName("TrackPanning")
As long as there is only one tool named "TrackPanning" in this composite
See listToolsNames()
| Name | Type |
|---|---|
T | extends string |
| Name | Type | Description |
|---|---|---|
toolName | T | The tool name or path |
Tools[T]
▸ getToolByType(toolType): AbstractTool
Returns the tool matching the given type. or null if nothing is matching the tool type
For example:
getToolByType(geotoolkit.controls.tools.Selection)
Would return the same tool as
getToolByName("pick")
| Name | Type | Description |
|---|---|---|
toolType | ClassType<any> | toolType of the tool |
▸ getTrack(index): ITrack
Returns track at specified index
| Name | Type | Description |
|---|---|---|
index | number | index of the track |
well track
▸ getTrackAt(index): ITrack
Returns track at specified index
Deprecated
since 4.2 use getTrack instead
| Name | Type | Description |
|---|---|---|
index | number | index of the track |
well track
▸ getTrackAtPosition(x, y?): LogTrack
Returns track at specified position in plot coordinate
| Name | Type | Description |
|---|---|---|
x | number | Point | x coordinate position |
Optional y | number | y coordinate position |
▸ getTrackContainer(): Group<Node>
Returns track container
▸ getTrackFooter(track): Group<Node> | LogBaseTrackHeader
Returns the track footer if it exists
| Name | Type | Description |
|---|---|---|
track | ITrack | current track |
Group<Node> | LogBaseTrackHeader
▸ getTrackHeader(track): Group<Node> | LogBaseTrackHeader
Returns the track header if it exists
| Name | Type | Description |
|---|---|---|
track | ITrack | current track |
Group<Node> | LogBaseTrackHeader
▸ getTrackManipulatorLayer(): Layer<Node>
Returns manipulator overlay to draw temporary shapes on top of the track container
▸ getTracks(filter?, modify?): Iterator<ITrack>
Return iterator by child tracks
| Name | Type | Description |
|---|---|---|
Optional filter | (node: ITrack) => boolean | a filter function. Returns all tracks if null |
Optional modify | boolean | An option to specify if the iterator supports adding/removing items from the collection. false by default. |
▸ getTracksCount(): number
Returns wells count
number
amount of wells
▸ getVisible(): boolean
Return visibility of the node
boolean
true if node is visible
▸ getVisibleDeviceLimits(ignoreModelLimits?): Rect
Return visible device limits
| Name | Type | Description |
|---|---|---|
Optional ignoreModelLimits | boolean | flag defines whether to ignore ModelLimits or not |
BaseWidget.getVisibleDeviceLimits
▸ getVisibleModelLimits(ignoreModelLimits?): Rect
Return visible model limits
| Name | Type | Description |
|---|---|---|
Optional ignoreModelLimits | boolean | flag defines whether to ignore ModelLimits or not |
BaseWidget.getVisibleModelLimits
▸ getWorldTransform(): Transformation
Retrieves the local transformation of the node which represents multiplication of parent to bounds and contents transformations.
▸ getZIndex(): number
Returns node z-index (null if not set)
number
▸ hasCssClass(cssClass): boolean
Check if node has specified css class
| Name | Type | Description |
|---|---|---|
cssClass | string | css class name |
boolean
▸ hasEventListener(type, callback?): boolean
Check if a list of event listeners for this type contains this listener
| Name | Type | Description |
|---|---|---|
type | string | type of event or property |
Optional callback | Function | to be called, if null, check if any callback is registered |
boolean
▸ indexOfBaseLayer(baseLayer): number
Return index of overlay ( index of the specified child or -1 if baseLayer is not found)
| Name | Type | Description |
|---|---|---|
baseLayer | Node | baseLayer to check index |
number
▸ indexOfChild(node): number
Return index of child ( index of the specified child or -1 if node is not found)
| Name | Type | Description |
|---|---|---|
node | Node | node to check index |
number
▸ indexOfOverlay(overlay): number
Return index of overlay ( index of the specified child or -1 if overlay is not found)
| Name | Type | Description |
|---|---|---|
overlay | Node | overlay to check index |
number
▸ indexOfTrack(wellTrack): number
Returns the index of specified track.
| Name | Type | Description |
|---|---|---|
wellTrack | ITrack | track to get index |
number
▸ Protected initializeTools(options?): MultiWellWidget
function call in the constructor to initialize tools in the widget
| Name | Type | Description |
|---|---|---|
Optional options | Object | options |
Optional options.cursortracking | Object | cursor tracking options |
Optional options.cursortracking.enabled | boolean | enabled state, false by default |
Optional options.cursortracking.tooltip | Options | JSON which defines single visual tooltip tool. |
Optional options.cursortracking.tooltipregistry | LogToolTipRegistry | Default registry for tool tip formatters, can be overridden by tooltip settings |
Optional options.ghost | Options & BaseOptions & { autoscroll?: { area?: number ; horizontal?: boolean ; vertical?: boolean } } | Ghost tool options |
Optional options.tracksplitter | SplitterOptions | tracks splitter options See AbstractTool.setProperties for details |
▸ insertBaseLayer(index, baseLayer): MultiWellWidget
Insert child baseLayer at specified index
| Name | Type | Description |
|---|---|---|
index | number | specified index |
baseLayer | Node | a baseLayer to add |
this
▸ insertChild(index, node): MultiWellWidget
Insert child node at specified index
| Name | Type | Description |
|---|---|---|
index | number | specified index |
node | Node | a child node to add |
this
▸ insertOverlay(index, overlay): MultiWellWidget
Insert child overlay at specified index
| Name | Type | Description |
|---|---|---|
index | number | specified index |
overlay | Node | a overlay to add |
this
▸ insertTrack(index, track, options?): CorrelationTrack
Insert track, well to the container at specified index
Example
// The code below shows how to create a well track with position from 0 to 300 in the model coordinates and depth range from 500 to 1000
import {TrackType} from '@int/geotoolkit/welllog/multiwell/TrackType';
import {Range} from '@int/geotoolkit/util/Range';
const well = widget.insertTrack(1, TrackType.WellTrack, {
'width': 400,
'range': new Range(0, 300),
'welllog': {
'range': new Range(500, 1000)
}
});Example
// The code below shows how to create a well track and pass all options in the the second parameter
import {TrackType} from '@int/geotoolkit/welllog/multiwell/TrackType';
import {Range} from '@int/geotoolkit/util/Range';
const well = widget.insertTrack(1, {
'type': TrackType.WellTrack
'width': 400,
'range': new Range(0, 300),
'welllog': {
'range': new Range(500, 1000)
}
});| Name | Type | Description |
|---|---|---|
index | number | index of the track |
track | CorrelationTrack | track to insert |
Optional options | Options | track options if the track has a TrackType |
▸ insertTrack(index, track, options?): WellTrack
▸ insertTrack(index, track, options?): ProxyWellTrack
| Name | Type |
|---|---|
index | number |
track | ProxyTrack |
Optional options | Options |
▸ insertTrack(index, options): ITrack
| Name | Type |
|---|---|
index | number |
options | Track |
▸ insertTrack(index, track): ITrack
▸ invalidate(bounds?, force?): MultiWellWidget
Invalidate node
| Name | Type | Description |
|---|---|---|
Optional bounds | Rect | optional rectangular area to be invalidated, or force flag if rectangle is empty |
Optional force | boolean | optional boolean parameter that can force invalidation |
this
▸ invalidateLayout(propagate?): MultiWellWidget
Notify that layout is invalidated. Send event Events.LayoutInvalidated
| Name | Type | Description |
|---|---|---|
Optional propagate | boolean | propagate invalidate layout to parent |
this
▸ invalidateParent(bounds?, force?): MultiWellWidget
Invalidate parent area
| Name | Type | Description |
|---|---|---|
Optional bounds | Rect | area to invalidate |
Optional force | boolean | force |
this
▸ isAttachedHeaders(): boolean
Return true if headers and footers are attached to track
boolean
▸ isClippingEnabled(): boolean
Returns if clipping is enabled or not for this node.
boolean
▸ isDisposed(): boolean
Returns whether this object has been disposed
boolean
▸ isEventPropagationEnabled(): boolean
Return true if event propagation is enabled from child to parent
boolean
BaseWidget.isEventPropagationEnabled
▸ isHorizontalFlip(): boolean
Return true if the representation is flipped horizontally
boolean
flip
▸ isLayoutInvalidated(): boolean
Return true if layout is invalid
boolean
BaseWidget.isLayoutInvalidated
▸ isNotificationEnabled(): boolean
return state of notification
boolean
current notification state
BaseWidget.isNotificationEnabled
▸ isPickingChildrenEnabled(): boolean
Returns if picking children is enabled or not for this node.
boolean
pickingChildren
BaseWidget.isPickingChildrenEnabled
▸ isSelectable(): boolean
Returns true if node can be picked/selected.
boolean
The selectable flag
▸ isSilent(): boolean
Return true if the event dispatcher doesn't notify any events
boolean
▸ isVerticalFlip(): boolean
Return true if the representation is flipped vertically
boolean
flip
▸ listToolsNames(): string[]
List all the tools contained in this composite. Prepend their parent tools parent using a '.'.
string[]
▸ loadTemplate(template, registry?): void
Load template loads the saved visual properties of the current template. It is only a visual representation of the current widget. It does not contain any data
| Name | Type | Description |
|---|---|---|
template | string | template to be applied to current widget |
Optional registry | Registry | registry |
void
▸ moveTo(area, vAlign?, hAlign?): MultiWellWidget
MoveTo position of node to specified area
| Name | Type | Description |
|---|---|---|
area | Rect | specified area |
Optional vAlign | string | vertical alignment. It can be "top", "bottom", "center". |
Optional hAlign | string | horizontal alignment It can be "left", "right", "center". |
this
▸ notify<E>(event, source, args?): MultiWellWidget
Notify listeners of the Node
| Name | Type |
|---|---|
E | extends string |
| Name | Type | Description |
|---|---|---|
event | E | type of event |
source | MultiWellWidget | source who called the event |
Optional args | EventMap<Node>[E] | event arguments |
this
▸ Protected notifyRoot(event, source, args?): Node
Notify an even to root node
| Name | Type | Description |
|---|---|---|
event | string | type of event |
source | Node | source who called the event |
Optional args | any | event arguments |
this
▸ off<E>(type?, callback?): MultiWellWidget
Detach listener on event. Calling .off() with no arguments removes all attached listeners. Calling .off(type) with no callback removes all attached listeners for specific type.
| Name | Type |
|---|---|
E | extends string |
| Name | Type | Description |
|---|---|---|
Optional type | E | type of the event |
Optional callback | (eventType: E, sender: MultiWellWidget, args: EventMap<Node>[E]) => void | function to be called |
this
▸ on<E>(type, callback): MultiWellWidget
Attach listener on event that will be called whenever the specified event is delivered to the target
If the callback function is already in the list of event listeners for this target, the function is not added a second time.
If a particular anonymous function is in the list of event listeners registered for a certain target, and then later in the code, an identical anonymous function is given in an "on" call, the second function will also be added to the list of event listeners for that target.
| Name | Type |
|---|---|
E | extends string |
| Name | Type | Description |
|---|---|---|
type | E | type of event or property |
callback | (eventType: E, sender: MultiWellWidget, args: EventMap<Node>[E]) => void | to be called |
this
▸ Protected onBoundsChanged(bounds): MultiWellWidget
Occurs when bounds has been changed
| Name | Type | Description |
|---|---|---|
bounds | Rect | bound of the node in the parent coordinates |
this
▸ Protected onChildAdded(child): void
This method is called it child or children are added
void
▸ Protected onChildRemoved(child): void
This method is called it child or children are removed
| Name | Type | Description |
|---|---|---|
child | Node | removed child |
void
▸ Protected onParentChanged(node): MultiWellWidget
This method is called when parent changes. Do not call it directly.
| Name | Type | Description |
|---|---|---|
node | Node | node to change parent |
this
▸ Protected onTrackAdded(track, index?): MultiWellWidget
Track it added to container
| Name | Type | Description |
|---|---|---|
track | ITrack | ITrack[] | track added |
Optional index | number | start index where track / tracks are added |
▸ Protected onTrackRemoving(track, index?): void
Track is removing from container
| Name | Type | Description |
|---|---|---|
track | ITrack | to be removed |
Optional index | number | track index to be removed |
void
▸ Protected onVisibilityChanged(): void
This method is called if visibility is changed. Send event Events.VisibilityChanged
void
BaseWidget.onVisibilityChanged
▸ panTo(x?, y?, alignment?): MultiWellWidget
Pans to the point
| Name | Type | Description |
|---|---|---|
Optional x | number | X coordinate of point to pan in track container model coordinate. if it is null it doesn't move in this direction |
Optional y | number | Y coordinate of point to pan in track container model coordinate. if it is null it doesn't move in this direction |
Optional alignment | string | alignment of specified point according to container visible limits. |
▸ panToTrack(track, depth?, alignment?): MultiWellWidget
Pans view to track with specified alignment and option depth. if detph it not specified the middle fo the track is used
| Name | Type | Description |
|---|---|---|
track | ITrack | track to scroll |
Optional depth | number | depth of the specified track. if it is null it doesn't move in this direction. |
Optional alignment | string | alignment of specified point according to container visible limits. |
▸ Protected postRendering(context, callback?): void
To be called after rendering, used for PDF output
| Name | Type | Description |
|---|---|---|
context | RenderingContext | Rendering Context |
Optional callback | () => void | callback to be called after rendering |
void
▸ Protected preRendering(context, callback?): void
Occurs before child rendering
| Name | Type | Description |
|---|---|---|
context | RenderingContext | Rendering Context |
Optional callback | () => void | callback to be called after rendering of geometry |
void
▸ rebuild(force?, changes?): MultiWellWidget
Rebuild node. This method resets state, cache, and invalidate node.
| Name | Type | Description |
|---|---|---|
Optional force | boolean | optional boolean parameter that can force invalidation |
Optional changes | StateChanges | optional parameter to specify a reason of changes |
this
▸ registerAnimationStyle(root): void
Register animation style.
| Name | Type | Description |
|---|---|---|
root | Node | root node for node |
void
BaseWidget.registerAnimationStyle
▸ removeAnnotation(name, item): MultiWellWidget
Add annotation to annotation container
▸ removeBaseLayer(baseLayer): MultiWellWidget
Remove child baseLayer
this
▸ removeChild(node, disposeChildren?): MultiWellWidget
Remove child node
| Name | Type | Description |
|---|---|---|
node | Node | Node[] | node or array of nodes to be removed |
Optional disposeChildren | boolean | automatically dispose children. If it is true then method dispose is called for each child. |
this
▸ removeCssClass(cssclass): MultiWellWidget
Removes css class from node
| Name | Type | Description |
|---|---|---|
cssclass | string | string[] | css class name('s) |
this
▸ removeInvalidateHandler(handler): MultiWellWidget
Remove invalidate handler
Deprecated
since 4.0, use Node.off instead
| Name | Type | Description |
|---|---|---|
handler | Function | handler to be notified about invalidation |
this
BaseWidget.removeInvalidateHandler
▸ removeOverlay(overlay): MultiWellWidget
Remove child overlay
this
▸ removeTrack(wellTrack): MultiWellWidget
Remove specified Well Track
| Name | Type | Description |
|---|---|---|
wellTrack | ITrack | track to remove |
this
▸ removeTrackAt(index): MultiWellWidget
Remove Well Track at specified index
Throws
Error if index out of bounds
| Name | Type | Description |
|---|---|---|
index | number | track index |
this
▸ render(context): void
Render group
| Name | Type | Description |
|---|---|---|
context | RenderingContext | context to render group |
void
▸ renderAsync(context, callback): void
Render node in asynchronous mode. This implementation doesn't support cache for now.
| Name | Type | Description |
|---|---|---|
context | RenderingContext | The rendering context to be used to draw the node |
callback | () => void | callback function |
void
▸ Protected renderBackground(context, bounds): MultiWellWidget
Render background
| Name | Type | Description |
|---|---|---|
context | RenderingContext | context to render background |
bounds | Rect | group bounds |
this
▸ Protected renderBaseLayers(context): MultiWellWidget
Render baseLayers on bottom of cache. This method does nothing, but can be implemented to render graphics on bottom of cache and between borders
| Name | Type | Description |
|---|---|---|
context | RenderingContext | context to render baseLayers |
this
▸ Protected renderBaseLayersAsync(context, callback): void
Render baseLayers on bottom of cache in asynchronous mode. This method calls renderBaseLayers
| Name | Type | Description |
|---|---|---|
context | RenderingContext | context to render overlays |
callback | () => void | callback function |
void
BaseWidget.renderBaseLayersAsync
▸ Protected renderChildren(context): void
Render children
| Name | Type | Description |
|---|---|---|
context | RenderingContext | Rendering Context |
void
▸ Protected renderChildrenAsync(context, callback): void
Render children async
| Name | Type | Description |
|---|---|---|
context | RenderingContext | Rendering Context |
callback | () => void | callback function to be called then all children are rendered |
void
BaseWidget.renderChildrenAsync
▸ Protected renderContent(context): void
render to specified context. This method calls preRendering, renderChildren, postRendering
| Name | Type | Description |
|---|---|---|
context | RenderingContext | Rendering Context |
void
▸ Protected renderContentAsync(context, callback): void
Render children in asynchronous mode
| Name | Type | Description |
|---|---|---|
context | RenderingContext | The rendering context to be used to draw the node |
callback | () => void | callback function to be called then all children are rendered |
void
▸ Protected renderOverlays(context): MultiWellWidget
Render overlays on top of cache. This method does nothing, but can be implemented to render graphics on top of cache and between borders
| Name | Type | Description |
|---|---|---|
context | RenderingContext | context to render overlays |
this
▸ Protected renderOverlaysAsync(context, callback): void
Render overlays on top of cache in asynchronous mode. This method calls renderOverlays
| Name | Type | Description |
|---|---|---|
context | RenderingContext | context to render overlays |
callback | () => void | callback function |
void
BaseWidget.renderOverlaysAsync
▸ resetTracksDepthScale(tracks?): MultiWellWidget
Reset depth scale to be equal to model depth scale for all or specified tracks
Example
// How to reset scale for two tracks
widget.resetTracksDepthScale(track1, track2]);| Name | Type | Description |
|---|---|---|
Optional tracks | ITrack | track or array of specified tracks. If tracks are not specified then it resets scale for all tracks in the widget |
this
▸ resumeUpdate(rebuild?, changes?): MultiWellWidget
Resume auto update
| Name | Type | Description |
|---|---|---|
Optional rebuild | boolean | force rebuild |
Optional changes | StateChanges | optional parameter to specify a reason of changes |
this
▸ rotate(theta, x, y): MultiWellWidget
Rotate bounds around a given coordinate
| Name | Type | Description |
|---|---|---|
theta | number | angle to rotate node, in radians |
x | number | x coordinate to rotate around |
y | number | y coordinate to rotate around |
this
▸ saveTemplate(registry?): string
Save template saves visual properties of the current template. It is only a visual representation of the current widget. It does not contain any data
| Name | Type | Description |
|---|---|---|
Optional registry | Registry | registry |
string
▸ scale(scaleX, scaleY?, anchor?): MultiWellWidget
Change relative scale of tracks. These scales are mulitplies to existing ones.
| Name | Type | Description |
|---|---|---|
scaleX | number | horizontal scale factor |
Optional scaleY | number | vertical scale factor |
Optional anchor | Point | AnchorType | anchor for zoom |
this
▸ scrollTrackByDepth(track, delta): MultiWellWidget
Scroll track by depth on delta depth
| Name | Type | Description |
|---|---|---|
track | ITrack | track to scroll |
delta | number | depth of the current track. |
this
▸ scrollTrackToDepth(track, depth, alignment, anchor?): MultiWellWidget
Scroll the specified track in container then depth of this track is defined by alignment
| Name | Type | Description |
|---|---|---|
track | ITrack | track to scroll |
depth | number | depth of the current track. if depth is out of the depth limits track will be scrolled proportionally to up or down |
alignment | string | alignment of track according to container visible limits. alignment value is "top", "bottom", "center" |
Optional anchor | number | position of container to be aligned |
this
▸ setAnimationStyle(animationStyle): MultiWellWidget
Sets animation style
| Name | Type | Description |
|---|---|---|
animationStyle | Type | animation style |
▸ setAutoModelLimitsMode(mode): MultiWellWidget
Set Model Limits Logics to use when no Model Limits have been set set to true: will use parents width and height, starting at 0 set to false: will use parents bounds. This is convenient method. It creates AutoModelLimitsStrategy
| Name | Type | Description |
|---|---|---|
mode | boolean | Model Limits Logics to be used |
this
BaseWidget.setAutoModelLimitsMode
▸ setAutoModelLimitsStrategy(strategy): MultiWellWidget
Set Model Limits Logics Strategy
| Name | Type | Description |
|---|---|---|
strategy | ModelLimitsStrategy | Model Limits logic strategy to use |
this
BaseWidget.setAutoModelLimitsStrategy
▸ setBounds(bounds): MultiWellWidget
Sets bounds of the node in the parent coordinates
| Name | Type | Description |
|---|---|---|
bounds | Rect | bound of the node in the parent coordinates |
this
▸ setCache(cache, rebuild?): MultiWellWidget
Sets cache to be used to cache
| Name | Type | Description |
|---|---|---|
cache | Cache | cache to be used |
Optional rebuild | boolean | rebuild cache |
this
▸ setCenterDepthLimits(range): MultiWellWidget
Sets center depth limits. (Vertical limits)
This is a helper method because it sets up only vertical limits of setCenterModelLimits
| Name | Type |
|---|---|
range | Range |
▸ setCenterDepthLimits(minIndex, maxIndex): MultiWellWidget
Sets center depth limits. (Vertical limits)
This is a helper method because it sets up only vertical limits of setCenterModelLimits
| Name | Type |
|---|---|
minIndex | number |
maxIndex | number |
▸ setCenterModelLimits(limits): MultiWellWidget
Sets center model limits if auto track limits is false
| Name | Type | Description |
|---|---|---|
limits | Rect | limits to set |
this
▸ setCenterVisibleDepthLimits(range): MultiWellWidget
Sets visible depth limits of the center container. (Vertical limits)
This is a helper method because it sets up only vertical limits of setCenterModelLimits
| Name | Type |
|---|---|
range | Range |
▸ setCenterVisibleDepthLimits(minIndex, maxIndex): MultiWellWidget
Sets center visible depth limits of the center container. (Vertical limits)
This is a helper method because it sets up only vertical limits of setCenterVisibleModelLimits
| Name | Type |
|---|---|
minIndex | number |
maxIndex | number |
▸ setCenterVisibleModelLimits(rect, fitStrategy?): MultiWellWidget
Sets center visible model limits
| Name | Type | Description |
|---|---|---|
rect | Rect | a new center model visible limits |
Optional fitStrategy | FitStrategy | fit strategy |
this
▸ setCenterVisibleModelLimits(rect, deviceBounds?): MultiWellWidget
Sets center visible model limits
| Name | Type | Description |
|---|---|---|
rect | Rect | a new center model visible limits |
Optional deviceBounds | Rect | device bounds of the container to fit new model limits. |
this
▸ setChild(index, node): MultiWellWidget
Replace child node by index
| Name | Type | Description |
|---|---|---|
index | number | index of the node |
node | Node | node |
this
▸ setClipStyle(style): MultiWellWidget
Sets a new clipping style
| Name | Type | Description |
|---|---|---|
style | GraphicsPath | ClipStyle | Options | a new clipping style |
this
▸ setContentOrientation(orientation): MultiWellWidget
Set content orientation
| Name | Type | Description |
|---|---|---|
orientation | Orientation | content orientation |
this
BaseWidget.setContentOrientation
▸ setCss(style, merge?): MultiWellWidget
Sets CSS style. This style will be applied for all inserted elements
| Name | Type | Description |
|---|---|---|
style | Type | CSS style to be applied to inserted elements |
Optional merge | boolean | merge flag |
this
▸ setCssClass(name): MultiWellWidget
Sets css class name of the node to be used to apply CSS style
| Name | Type | Description |
|---|---|---|
name | string | css class name of the node |
this
▸ setCssTransform(transform): MultiWellWidget
Set CSS transformation
| Name | Type | Description |
|---|---|---|
transform | string | Transformation | transformation css transformation instruction or Transformation instance |
this
▸ setData(data): MultiWellWidget
Sets a new data model
| Name | Type | Description |
|---|---|---|
data | AbstractDataTable | DataSource | logdata |
this
▸ setDataBinding(binding, silent?): MultiWellWidget
Sets the data binding
| Name | Type | Description |
|---|---|---|
binding | DataBinding | data binding |
Optional silent | boolean | silent mode to forbid |
this
▸ setDesiredHeight(value, silent?): MultiWellWidget
Sets desired height of the group as a layoutable object
| Name | Type | Description |
|---|---|---|
value | string | number | desired height to set, use 'auto' for automatic desired height |
Optional silent | boolean | silent setting |
this
▸ setDesiredWidth(value, silent?): MultiWellWidget
Sets desired width of the group as a layoutable object
| Name | Type | Description |
|---|---|---|
value | string | number | desired width to set |
Optional silent | boolean | silent setting |
this
▸ setDistanceStrategy(strategy): MultiWellWidget
Sets strategy to compute distance between wells
| Name | Type | Description |
|---|---|---|
strategy | AbstractDistanceStrategy | distance strategy |
this
▸ setExportLimits(limits): MultiWellWidget
Sets export model limits
| Name | Type | Description |
|---|---|---|
limits | Rect | export limits |
▸ setExportScale(scaleX, scaleY): MultiWellWidget
Sets export scale
| Name | Type | Description |
|---|---|---|
scaleX | number | export scale factor along x coordinate |
scaleY | number | export scale factor along y coordinate |
▸ setFillStyle(fillStyle, merge?): MultiWellWidget
Sets fill style
| Name | Type | Description |
|---|---|---|
fillStyle | Type | a new fill style |
Optional merge | boolean | true if you want to merge fillStyle with existing attribute, false by default |
this
▸ setFixedTracksWidth(enable): MultiWellWidget
Sets mode to keep fixed width of tracks and wells for horizontal scale
| Name | Type | Description |
|---|---|---|
enable | boolean | enable fixed width of wells during scale |
this
▸ setFooterHeight(height): MultiWellWidget
Sets footer height
| Name | Type | Description |
|---|---|---|
height | number | "auto" | footer height in pixels or 'auto' to fit footer height |
this
▸ setHeaderHeight(height): MultiWellWidget
Sets header height
| Name | Type | Description |
|---|---|---|
height | number | "auto" | header height in pixels or 'auto' to fit header height |
this
▸ setHorizontalFlip(enable): MultiWellWidget
Set horizontal flip of the representation
| Name | Type | Description |
|---|---|---|
enable | boolean | enable flip |
this
▸ setId(id): MultiWellWidget
Allows the user to associate any identifier
| Name | Type | Description |
|---|---|---|
id | string | number | object id |
this
▸ setIndexUnit(unit): MultiWellWidget
Sets index unit
| Name | Type |
|---|---|
unit | string | AbstractUnit |
▸ setInfiniteMode(infinityMode): MultiWellWidget
Set infinity mode flag to draw composite without collision check
| Name | Type | Description |
|---|---|---|
infinityMode | boolean | infinity mode flag |
this
▸ setLayout(layout): MultiWellWidget
Associate layout with a group.
| Name | Type | Description |
|---|---|---|
layout | Record<string, any> | Layout | layout instance to be set or layout properties to apply |
this
▸ Protected setLayoutInvalidated(invalidated): void
Set invalidation status
| Name | Type | Description |
|---|---|---|
invalidated | boolean | invalidated layout |
void
BaseWidget.setLayoutInvalidated
▸ setLayoutStyle(layoutStyle, silent?, merge?): MultiWellWidget
specify desired layout style
| Name | Type | Description |
|---|---|---|
layoutStyle | LayoutStyle<string | number> | Options<string | number> | desired layout style |
Optional silent | boolean | silent setting |
Optional merge | boolean | true if you want to merge layoutStyle with existing attribute, false by default |
this
▸ setLineStyle(lineStyle, merge?): MultiWellWidget
Sets border color Returns this
| Name | Type | Description |
|---|---|---|
lineStyle | Type | line style or options |
Optional merge | boolean | true if you want to merge lineStyle with existing attribute, false by default |
this
▸ setLocalTransform(localTransform, force?): MultiWellWidget
Sets local transformation to be used to transform from local to parent coordinate
| Name | Type | Description |
|---|---|---|
localTransform | Transformation | local transformation for this node |
Optional force | boolean | boolean flag to force update event if transformations are equal, false by default |
this
▸ setMarginsStyle(margins, merge?): MultiWellWidget
Sets margins style
| Name | Type | Description |
|---|---|---|
margins | Type<string | number> | margins style |
Optional merge | boolean | true if you want to merge marginsStyle with existing attribute, false by default |
this
▸ setModelDepthScale(scale, scaleUnit?, deviceUnit?): MultiWellWidget
Sets a scale factor in vertical direction for container
Throws
Will throw an error if the current scale is NaN
Example
import {UnitFactory} from '@int/geotoolkit/util/UnitFactory';
// To set depth scale range as a ratio, you can use units as follows
const unitFactory = UnitFactory.getInstance();
widget.setModelDepthScale(30, unitFactory.getUnit('feet'), unitFactory.getUnit('inch')); //1 inch == 30 feet| Name | Type | Description |
|---|---|---|
scale | number | A number of depth units in device unit. |
Optional scaleUnit | string | AbstractUnit | scale unit of the display. if it is not specified then it takes from track container |
Optional deviceUnit | string | AbstractUnit | device unit of the display. if it is not specified then it takes from track container |
this
▸ setModelLimits(limits): MultiWellWidget
Sets inner model limits
| Name | Type | Description |
|---|---|---|
limits | Type | inner limits |
this
▸ setName(name): MultiWellWidget
Sets name of the node
| Name | Type | Description |
|---|---|---|
name | string | The node name |
this
▸ setNodeFilter(nodeFilter): MultiWellWidget
Sets node filter for selection tool and it works for new wells only
| Name | Type | Description |
|---|---|---|
nodeFilter | (item: Node) => boolean | filter that allows to filter selected nodes. |
this
▸ setNotification(notify, force?): MultiWellWidget
set notification state
| Name | Type | Description |
|---|---|---|
notify | boolean | flag set to invalidate parent or not |
Optional force | boolean | true if parent should be invalidated immediately |
this
▸ setOpacity(opacity, blendMode?): MultiWellWidget
Sets node opacity
| Name | Type | Description |
|---|---|---|
opacity | number | node opacity from 0 to 1 |
Optional blendMode | BlendMode | opacity blend mode. If it is normal, opacity will be replaced. |
this
▸ setOptions(options?): MultiWellWidget
Sets widget options. It is a same as setProperties
Example
//call setOptions on widget after construction and change the default header size(84) as follows.
widgets.setOptions({'header' : {
'height': 184
}});| Name | Type | Description |
|---|---|---|
Optional options | Options | addition options |
this
▸ setOrientation(orientation): MultiWellWidget
| Name | Type |
|---|---|
orientation | Orientation |
▸ setPaddingStyle(paddingStyle, merge?): MultiWellWidget
Sets padding style
| Name | Type | Description |
|---|---|---|
paddingStyle | Type<string | number> | padding style |
Optional merge | boolean | true if you want to merge paddingStyle with existing attribute, false by default |
this
▸ setProperties(properties?): MultiWellWidget
Sets all the properties pertaining to this object
| Name | Type | Description |
|---|---|---|
Optional properties | Options | addition options |
this
▸ setProperty(name, value): MultiWellWidget
Sets dynamic property by name
| Name | Type | Description |
|---|---|---|
name | string | property name |
value | any | property value |
this
▸ setRenderingFilter(filter): MultiWellWidget
Sets filter to be applied before rendering and picking
| Name | Type | Description |
|---|---|---|
filter | IFilter | filter to set |
this
▸ setResponsiveStyle(style): MultiWellWidget
Sets responsive style.
| Name | Type | Description |
|---|---|---|
style | Options | ResponsiveStyle | responsive style |
this
▸ setScaleScrollStrategy(scaleScrollStrategy, reset?): MultiWellWidget
Sets scale scroll strategy.
| Name | Type | Description |
|---|---|---|
scaleScrollStrategy | Delegate | scaleScrollStrategy to set |
Optional reset | boolean | flag to reset previous transformation, true by default |
this
BaseWidget.setScaleScrollStrategy
▸ setSelectable(selectable): MultiWellWidget
Allows to select node. If node is not selectable then child node is not selectable.
| Name | Type | Description |
|---|---|---|
selectable | boolean | flag to allow node selection |
this
▸ setSelectedTrack(wellTrack): MultiWellWidget
Set selected well
| Name | Type | Description |
|---|---|---|
wellTrack | ITrack | track to select |
▸ setSilent(bool): MultiWellWidget
Set silent mode
| Name | Type | Description |
|---|---|---|
bool | boolean | flag to enable silent mode |
this
▸ setTag(tag): MultiWellWidget
Allows the user to associate any arbitrary object with the node.
| Name | Type | Description |
|---|---|---|
tag | any | The object to be associated with the node. |
this
▸ Protected setTool(tool): MultiWellWidget
Set root tool associated to this widget
| Name | Type | Description |
|---|---|---|
tool | CompositeTool | tool to be set |
▸ setVerticalFlip(flip): MultiWellWidget
Set vertical flip of the representation
| Name | Type | Description |
|---|---|---|
flip | boolean | flag to set the vertical flip of the representation |
this
▸ setVisible(value): MultiWellWidget
Sets visibility of the node. Send event Events.VisibilityChanged
| Name | Type | Description |
|---|---|---|
value | boolean | flag specifying visibility of the node |
this
▸ setVisibleModelLimits(visibleModelBounds, deviceBounds?): MultiWellWidget
Set visible model limits
| Name | Type | Description |
|---|---|---|
visibleModelBounds | Rect | visible model limits or bounds |
Optional deviceBounds | Rect | device bounds |
this
BaseWidget.setVisibleModelLimits
▸ setZIndex(value): MultiWellWidget
Sets z-index for node (set null for default)
| Name | Type | Description |
|---|---|---|
value | number | index determining node z-position |
this
▸ shear(shx, shy): MultiWellWidget
Shear this node's bounds
| Name | Type | Description |
|---|---|---|
shx | number | x-axis shear |
shy | number | y-axis shear |
this
▸ suspendUpdate(): MultiWellWidget
Suspend auto update
this
▸ toString(): string
Returns a string representation of this object (generally the classname)
string
A string representation
▸ translate(tx, ty): MultiWellWidget
Translate bounds
| Name | Type | Description |
|---|---|---|
tx | number | x translation |
ty | number | y translation |
this
▸ unregisterAnimationStyle(root): void
Unregister animation style.
| Name | Type | Description |
|---|---|---|
root | AnimatedNode | root node for node |
void
BaseWidget.unregisterAnimationStyle
▸ updateData(): MultiWellWidget
Send event DataUpdating to update data. The event argument's includes type, source, {'start, 'end'}, where start and end is visible range
Deprecated
since 4.0
this
▸ updateFooter(): MultiWellWidget
Update footer
this
▸ updateHeader(): MultiWellWidget
Update header
this
▸ updateLayout(targets?, updateScrollBarState?): MultiWellWidget
Updates layout(s)
| Name | Type | Description |
|---|---|---|
Optional targets | ILayoutable[] | optional parameter about which element to layout |
Optional updateScrollBarState | boolean | updateScrollBarState |
this
▸ updateSceneTransformation(): MultiWellWidget
Update scene transformation
this
BaseWidget.updateSceneTransformation
▸ updateScrollPositions(updateScrollBarState?, enableAnimation?): MultiWellWidget
update Scroll Positions using visible limits and model limits.
| Name | Type | Description |
|---|---|---|
Optional updateScrollBarState | boolean | update Scroll Positions using visible limits and model limits or not |
Optional enableAnimation | boolean | show animation |
▸ updateState(regions?, changes?): MultiWellWidget
Mark this group to be updated.
| Name | Type | Description |
|---|---|---|
Optional regions | Rect[] | optional array to return invalid rectangles |
Optional changes | StateChanges | optional parameter to specify a reason of changes |
this
▸ updateSuspended(): boolean
Return state of suspend state
boolean
state of update
▸ Protected updateTimeStamp(): MultiWellWidget
Update time stamp to indicate that Node or Children has been changed.
this
▸ zoomIn(): MultiWellWidget
Does zoom in (namely, scales with predefined scale factor (5 / 4))
this
▸ zoomOut(): MultiWellWidget
Does zoom out (namely, scales with predefined scale factor (4 / 5))
this
▸ Static enableSceneGraphNotification(enabled): void
Enable / disable all notifications
| Name | Type | Description |
|---|---|---|
enabled | boolean | sets if this object sends notifications |
void
BaseWidget.enableSceneGraphNotification
▸ Static findParent<T>(node, classType, filter?): InstanceType<T>
Find root of the node with specified type
| Name | Type |
|---|---|
T | extends Constructor<any> |
| Name | Type | Description |
|---|---|---|
node | Node | node to start search |
classType | T | type of the class to search for |
Optional filter | (node: Node) => boolean | additional filter to apply |
InstanceType<T>
▸ Static findParent(node, classType, filter?): Node
Find root of the node with specified type
| Name | Type | Description |
|---|---|---|
node | Node | node to start search |
classType | string | interface name to search for |
Optional filter | (node: Node) => boolean | additional filter to apply |
▸ Static getClassName(): string
string
▸ Static isSceneGraphNotificationEnabled(): boolean
Return status of the global notification for all nodes.
boolean