IntelliJ plugin topics:

Layers view

Opened from a tab on the right side of the Intellij window, the LayersView exposes a powerful tool for managing and understanding your code's dependencies. View layers in one of three modes:

Inactive: shows all layers in the project
Active: shows layers in last debug/run session
Current: inactive layers loaded in this IDE session.

Active layers: Active layers
Inactive layers:

Inactive layers

Layers organized by process or runtime

Some layers are tied to one or more processes or runtimes by calling includeRuntime(), includeProcess(), excludeRuntime() or excludeProcess() in the init() method in the layer definition file. Framework layers further can define a new process or runtime. Most application layers inherit runtime restrictions from the layers they extend. From that information, StrataCode organizes layers using these process/runtime constraints into separate "layered systems", each of which defines a particular process. This layers view shows you the layers in each layered system for both the active and inactive views.

Here are the active layers in the server process running the doc.core layer running in compiled client/server mode:

Layers view runtimes

Here are the active layers in the JS runtime for the same application:

Client layers

Layers organized by type

The layer definition file as a best practice contains metadata to identify the type of code in that particular layer: framework, model, ui, etc.

Here are the available framework layers that you can use with the Java server process:

Layers view runtimes

Dynamic layers

A dynamic layer has a green icon in the layers view. With doc.core as a dynamic layer, layers view shows:

Dynamic layers view

Filter by name

Show only layers matching a pattern (use * for wildcards - e.g. *core or *model)

Filter layers

Layer selection

Layer selection is tied to file selection in both directions. When selecting EditorFrame.schtml, layers view selects it's layer: editor.js.core. Now editor.coreui is blue because it defines a super layer of EditorFrame.

Layer selection

After selecting editor.coreui in the layer's view, the editor opens to EditorFrame.sc in that layer. Now editor.js.core is blue because it is a sub layer of EditorFrame.

Layer selecting modified type

Enable layer options

The layer options menu is available by clicking on the 'gear' icon in the upper right corner of Layers view. These options add additional info after the layer name.

Show layer package - the package assigned to the layer. When a layer has a package, all files in that layer's directory start out in that package.

Layer package

Show layer details - 'build' for buildLayers, 'annotation' for annotation layers, codeType = Framework, Model, etc.

Layer details

Show sync annotations - Auto-sync as shown here turns on synchronization for layers that are used in more than one runtime.

Layer sync

Show layer's with runtime constraints - The jetty.lib layer is excluded from the js, gwt, and android runtimes and defines a process called "Server" in the java runtime.

Layer runtime


Next topic: