Class JavaFXParallelCoordinates<R,C>
java.lang.Object
com.macrofocus.high_d.parallelcoordinates.AbstractParallelCoordinates<javafx.scene.Node,javafx.scene.paint.Color,R,C>
com.macrofocus.high_d.parallelcoordinates.javafx.JavaFXParallelCoordinates<R,C>
- All Implemented Interfaces:
com.macrofocus.crossplatform.CPComponent<javafx.scene.Node>
,ParallelCoordinates<javafx.scene.Node,
javafx.scene.paint.Color, R, C>
public class JavaFXParallelCoordinates<R,C>
extends AbstractParallelCoordinates<javafx.scene.Node,javafx.scene.paint.Color,R,C>
A facade to the ParallelCoordinates model-view-controller (MVC) architecture. In brief, the controller collects user
input,
the model manipulates application data, and the view presents results to the user. This class wraps a
ParallelCoordinatesModel
, ParallelCoordinatesView
, and
ParallelCoordinatesController
together. It allows easy loading of
the data and
customization of the most common settings.
Here is a simplistic example of how to get started with this class within minutes:
import com.macrofocus.data.table.Row;
import com.macrofocus.helper.TableHelper;
import com.macrofocus.high_d.pcs.ParallelCoordinates;
import com.macrofocus.high_d.pcs.ParallelCoordinatesModel;
import com.macrofocus.high_d.pcs.axis.AxisModel;
import com.macrofocus.high_d.pcs.colortheme.DarkColorTheme;
import com.macrofocus.high_d.pcs.geometry.Geometry;
import javax.swing.*;
import javax.swing.table.TableModel;
import java.awt.*;
public class Hello {
public static void main(String[] args) {
final TableModel tableModel = TableHelper.createRandomDataFrame(4, 10000, 10);
ParallelCoordinates parallelCoordinates = new ParallelCoordinates(tableModel);
ParallelCoordinatesModel model = parallelCoordinates.getModel();
// Tune the appearance
model.getSettings().setGeometry(Geometry.Steps);
parallelCoordinates.getView().setColorTheme(new DarkColorTheme());
// Normalize all the scales between 0 and 1
for(AxisModel axisModel: model.getAxisModels()) {
axisModel.setMaximum(1);
axisModel.setMinimum(0);
axisModel.getInterval().setValue(0, 1);
}
// Filter out values that are not between 0.5 and 0.7
model.getAxisModel(2).getInterval().setValue(0.5, 0.2);
// Adjust the initial state
model.getProbing().setSelected(model.getObject(16));
model.getSelection().setSelected(model.getObject(10));
model.getColoring().setColor(model.getObject(498), Color.green);
final JFrame frame = new JFrame("Hello from the High-D World!");
frame.setSize(800, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(parallelCoordinates);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
The code above will produce the following output:
-
Field Summary
Fields inherited from class com.macrofocus.high_d.parallelcoordinates.AbstractParallelCoordinates
controller, licenseModel, view
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a ParallelCoordinates component with default settings and configuration.Creates a ParallelCoordinates component with the its native data model.JavaFXParallelCoordinates
(com.macrofocus.molap.dataframe.DataFrame dataFrame) Creates a ParallelCoordinates component with the specified Swing TableModel. -
Method Summary
Modifier and TypeMethodDescriptionprotected ParallelCoordinatesController
Creates a controller that can be used by the parallel coordinates componentprotected ParallelCoordinatesModel<javafx.scene.paint.Color,
R, C> createModel
(com.macrofocus.molap.dataframe.DataFrame dataFrame) Creates a model that can be used by the parallel coordinates componentprotected ParallelCoordinatesView<javafx.scene.Node,
javafx.scene.paint.Color, R, C> Creates a view that can be used by the parallel coordinates componentjavafx.scene.Node
static void
Sort of a Hello World! application to demonstrate the most basic use of the ParallelCoordinates APIvoid
setStyleClass
(String... styleClasses) void
setView
(ParallelCoordinatesView<javafx.scene.Node, javafx.scene.paint.Color, R, C> view) Sets the view to be used by the parallel coordinates component and register the model currently in use.Methods inherited from class com.macrofocus.high_d.parallelcoordinates.AbstractParallelCoordinates
getController, getModel, getView, load, setController, setLicenseKey, setModel
-
Constructor Details
-
JavaFXParallelCoordinates
public JavaFXParallelCoordinates()Creates a ParallelCoordinates component with default settings and configuration. -
JavaFXParallelCoordinates
Creates a ParallelCoordinates component with the its native data model.- Parameters:
model
- a ParallelCoordinatesModel
-
JavaFXParallelCoordinates
public JavaFXParallelCoordinates(com.macrofocus.molap.dataframe.DataFrame dataFrame) Creates a ParallelCoordinates component with the specified Swing TableModel.- Parameters:
dataFrame
- a Swing TableModel
-
-
Method Details
-
setStyleClass
-
setView
Description copied from interface:ParallelCoordinates
Sets the view to be used by the parallel coordinates component and register the model currently in use. It will also register itself to the controller.- Specified by:
setView
in interfaceParallelCoordinates<javafx.scene.Node,
javafx.scene.paint.Color, R, C> - Overrides:
setView
in classAbstractParallelCoordinates<javafx.scene.Node,
javafx.scene.paint.Color, R, C> - Parameters:
view
- the view to be used
-
createModel
protected ParallelCoordinatesModel<javafx.scene.paint.Color,R, createModelC> (com.macrofocus.molap.dataframe.DataFrame dataFrame) Description copied from class:AbstractParallelCoordinates
Creates a model that can be used by the parallel coordinates component- Specified by:
createModel
in classAbstractParallelCoordinates<javafx.scene.Node,
javafx.scene.paint.Color, R, C> - Parameters:
dataFrame
- a Swing TableModel- Returns:
- a ParallelCoordinatesModel instance
-
createView
Description copied from class:AbstractParallelCoordinates
Creates a view that can be used by the parallel coordinates component- Specified by:
createView
in classAbstractParallelCoordinates<javafx.scene.Node,
javafx.scene.paint.Color, R, C> - Returns:
- a ParallelCoordinatesView instance
-
createController
Description copied from class:AbstractParallelCoordinates
Creates a controller that can be used by the parallel coordinates component- Specified by:
createController
in classAbstractParallelCoordinates<javafx.scene.Node,
javafx.scene.paint.Color, R, C> - Parameters:
view
- the view that should be controlled- Returns:
- a ParallelCoordinatesController instance
-
getNativeComponent
public javafx.scene.Node getNativeComponent() -
main
Sort of a Hello World! application to demonstrate the most basic use of the ParallelCoordinates API
-