Overview | Modules | Class Hierarchy | Classes | Members

Public Types | Public Slots | Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes
tlp::MainController Class Reference

Default controller of Tulip. More...

`#include <MainController.h>`

Inheritance diagram for tlp::MainController:
[legend]
Collaboration diagram for tlp::MainController:
[legend]

List of all members.

## Public Types

- typedef std::set
  < tlp::Observable * >
  ::iterator ObserverIterator

## Public Slots

- void editCut ()
- void editCopy ()
- void editPaste ()
- void editFind ()
- void editCreateGroup ()
- void editCreateSubgraph ()
- void editDelSelection ()
- void editReverseSelection ()
- void editSelectAll ()
- void editDeselectAll ()

## Public Member Functions

- MainController ()
- virtual ~MainController ()
- void attachMainWindow (MainWindowFacade facade)
- void setData (Graph *graph=0, DataSet dataSet=DataSet())
- void getData (Graph **graph, DataSet *dataSet)
- void buildMenu ()
- void initializeGraph (Graph *graph)
- void loadGUI ()
- View * initMainView (DataSet dataSet)
- virtual View * createView (const std::string &name, Graph *graph, DataSet dataSet, bool forceWidgetSize=true, const QRect &rect=QRect(0, 0, 0, 0), bool maximized=false)
- virtual void drawViews (bool init=false)

## Protected Slots

- virtual bool changeGraph (Graph *graph)
- void graphAboutToBeRemove (Graph *graph)
- virtual bool windowActivated (QWidget *w)
- virtual bool changeInteractor (QAction *action)
- void showElementProperties (unsigned int eltId, bool isNode)
- void showGraphEditor ()
- void showViewEditor ()
- void viewRequestChangeGraph (tlp::View *view, tlp::Graph *graph)
- virtual void widgetWillBeClosed (QObject *object)
- void filePrint ()
- void isAcyclic ()
- void isSimple ()
- void isConnected ()
- void isBiconnected ()
- void isTriconnected ()
- void isTree ()
- void isFreeTree ()
- void isPlanar ()
- void isOuterPlanar ()
- void makeAcyclic ()
- void makeBiconnected ()
- void makeSimple ()
- void makeConnected ()
- void makeDirected ()
- void reverseSelectedEdgeDirection ()
- void changeMetric ()
- void changeString ()
- void changeSizes ()
- void changeColors ()
- void changeInt ()
- void changeSelection ()
- void changeLayout ()
- void applyAlgorithm ()
- void updateUndoRedoInfos ()
- void undo ()
- void redo ()
- void snapshot ()

## Protected Member Functions

- void observableDestroyed (Observable *)
- void update (ObserverIterator begin, ObserverIterator end)
- void initObservers ()
- void clearObservers ()
- void addSubGraph (Graph *, Graph *)
- void delSubGraph (Graph *, Graph *)
- void addLocalProperty (Graph *, const std::string &)
- void delLocalProperty (Graph *, const std::string &)
- void afterSetAttribute (Graph *, const std::string &)
- void updateCurrentGraphInfos ()
- void afterChangeProperty ()
- GraphState * constructGraphState ()
- void applyMorphing (GraphState *graphState)

## Protected Attributes

- std::map< View *, int > lastConfigTabIndexOnView
- unsigned int currentGraphNbNodes
- unsigned int currentGraphNbEdges
- Graph * graphToReload
- bool propertiesListUpdated
- bool blockUpdate
- bool inAlgorithm
- Morphing * morph
- QDockWidget * tabWidgetDock
- QDockWidget * configWidgetDock
- QTabWidget * configWidgetTab
- SGHierarchyWidget * clusterTreeWidget
- PropertyDialog * propertiesWidget
- ElementPropertiesWidget * eltProperties
- QMenu * editMenu
- QMenu * algorithmMenu
- QMenu * viewMenu
- QMenu * optionsMenu
- QMenu * graphMenu
- QAction * forceRatioAction
- QAction * mapMetricAction
- QAction * morphingAction
- QAction * undoAction
- QAction * redoAction
- QAction * snapshotAction
- QAction * printAction
- QAction * editUndoAction
- QAction * editRedoAction
- QMenu * intMenu
- QMenu * stringMenu
- QMenu * sizesMenu
- QMenu * colorsMenu
- QMenu * layoutMenu
- QMenu * metricMenu
- QMenu * selectMenu
- QMenu * generalMenu

## Detailed Description

Default controller of Tulip.

This Controller create a GUI like the old Tulip On left : Property, and hierarchical view In view menu you have access to all view plugins

## Member Typedef Documentation

typedef std::set< tlp::Observable * >::iterator tlp::MainController::ObserverIterator

## Constructor & Destructor Documentation

tlp::MainController::MainController | ( |  | ) |

Default constructor

virtual tlp::MainController::~MainController | ( |  | ) | `[virtual]`

Default destructor

## Member Function Documentation

void tlp::MainController::addLocalProperty | ( | Graph * | ,
|  | const std::string & |
| ) |  | `[protected]`

Called when a local property is added

void tlp::MainController::addSubGraph | ( | Graph * | ,
|  | Graph * |
| ) |  | `[protected]`

Called when a subgraph is added.

void tlp::MainController::afterChangeProperty | ( |  | ) | `[protected]`

Activate undo/redo button, reload propertyWidget and redrawViews after we have change a property

void tlp::MainController::afterSetAttribute | ( | Graph * | ,
|  | const std::string & |
| ) |  | `[protected]`

Called when an attribute is set on a graph

void tlp::MainController::applyAlgorithm | ( |  | ) | `[protected, slot]`

void tlp::MainController::applyMorphing | ( | GraphState * | graphState | ) | `[protected]`

Do a morphing between current state and the given GraphState

void tlp::MainController::attachMainWindow | ( | MainWindowFacade | facade | ) | `[virtual]`

Attach the QMainWindow to the controller

Reimplemented from tlp::ControllerViewsManager.

void tlp::MainController::buildMenu | ( |  | ) |

Construct main menu

void tlp::MainController::changeColors | ( |  | ) | `[protected, slot]`

virtual bool tlp::MainController::changeGraph | ( | Graph * | graph | ) | `[protected, virtual, slot]`

Change the graph and load it in left part of the GUI

Reimplemented from tlp::ControllerViewsManager.

void tlp::MainController::changeInt | ( |  | ) | `[protected, slot]`

virtual bool tlp::MainController::changeInteractor | ( | QAction * | action | ) | `[protected, virtual, slot]`

Load the interactor (referenced by the given QAction) in current View

Reimplemented from tlp::ControllerViewsManager.

void tlp::MainController::changeLayout | ( |  | ) | `[protected, slot]`

void tlp::MainController::changeMetric | ( |  | ) | `[protected, slot]`

void tlp::MainController::changeSelection | ( |  | ) | `[protected, slot]`

void tlp::MainController::changeSizes | ( |  | ) | `[protected, slot]`

void tlp::MainController::changeString | ( |  | ) | `[protected, slot]`

void tlp::MainController::clearObservers | ( |  | ) | `[protected]`

Clear all observers

GraphState* tlp::MainController::constructGraphState | ( |  | ) | `[protected]`

Store current view in a GraphState to use it with applyMorphing function

virtual View* tlp::MainController::createView | ( | const std::string & | name,
|  | Graph * | graph,
|  | DataSet | dataSet,
|  | bool | forceWidgetSize = `true`,
|  | const QRect & | rect = `QRect(0, 0, 0, 0)`,
|  | bool | maximized = `false`
| ) |  | `[virtual]`

Create a view with name : name

Reimplemented from tlp::ControllerViewsManager.

void tlp::MainController::delLocalProperty | ( | Graph * | ,
|  | const std::string & |
| ) |  | `[protected]`

Called when a local property is deleted

void tlp::MainController::delSubGraph | ( | Graph * | ,
|  | Graph * |
| ) |  | `[protected]`

Called when a subgraph is removed.

virtual void tlp::MainController::drawViews | ( | bool | init = `false` | ) | `[virtual]`

Draw/Init all views

Reimplemented from tlp::ControllerViewsManager.

void tlp::MainController::editCopy | ( |  | ) | `[slot]`

void tlp::MainController::editCreateGroup | ( |  | ) | `[slot]`

void tlp::MainController::editCreateSubgraph | ( |  | ) | `[slot]`

void tlp::MainController::editCut | ( |  | ) | `[slot]`

void tlp::MainController::editDelSelection | ( |  | ) | `[slot]`

void tlp::MainController::editDeselectAll | ( |  | ) | `[slot]`

void tlp::MainController::editFind | ( |  | ) | `[slot]`

void tlp::MainController::editPaste | ( |  | ) | `[slot]`

void tlp::MainController::editReverseSelection | ( |  | ) | `[slot]`

void tlp::MainController::editSelectAll | ( |  | ) | `[slot]`

void tlp::MainController::filePrint | ( |  | ) | `[protected, slot]`

Print the current view

void tlp::MainController::getData | ( | Graph ** | graph,
|  | DataSet * | dataSet
| ) |  | `[virtual]`

Return the graph and the dataSet of the controller

Implements tlp::Controller.

void tlp::MainController::graphAboutToBeRemove | ( | Graph * | graph | ) | `[protected, slot]`

Clear observers when a graph is about to be remove

void tlp::MainController::initializeGraph | ( | Graph * | graph | ) |

Set the default initialization of the graph

View* tlp::MainController::initMainView | ( | DataSet | dataSet | ) |

Create and init the main view (NodeLinkDiagramComponent)

void tlp::MainController::initObservers | ( |  | ) | `[protected]`

Init all observers (graph and properties)

void tlp::MainController::isAcyclic | ( |  | ) | `[protected, slot]`

void tlp::MainController::isBiconnected | ( |  | ) | `[protected, slot]`

void tlp::MainController::isConnected | ( |  | ) | `[protected, slot]`

void tlp::MainController::isFreeTree | ( |  | ) | `[protected, slot]`

void tlp::MainController::isOuterPlanar | ( |  | ) | `[protected, slot]`

void tlp::MainController::isPlanar | ( |  | ) | `[protected, slot]`

void tlp::MainController::isSimple | ( |  | ) | `[protected, slot]`

void tlp::MainController::isTree | ( |  | ) | `[protected, slot]`

void tlp::MainController::isTriconnected | ( |  | ) | `[protected, slot]`

void tlp::MainController::loadGUI | ( |  | ) |

Load the GUI

void tlp::MainController::makeAcyclic | ( |  | ) | `[protected, slot]`

void tlp::MainController::makeBiconnected | ( |  | ) | `[protected, slot]`

void tlp::MainController::makeConnected | ( |  | ) | `[protected, slot]`

void tlp::MainController::makeDirected | ( |  | ) | `[protected, slot]`

void tlp::MainController::makeSimple | ( |  | ) | `[protected, slot]`

void tlp::MainController::observableDestroyed | ( | Observable * |  | ) | `[protected]`

This function is call when an observable is destroyed

void tlp::MainController::redo | ( |  | ) | `[protected, slot]`

void tlp::MainController::reverseSelectedEdgeDirection | ( |  | ) | `[protected, slot]`

void tlp::MainController::setData | ( | Graph * | graph = `0`,
|  | DataSet | dataSet = `DataSet()`
| ) |  | `[virtual]`

Set graph and dataSet to the controller

Implements tlp::Controller.

void tlp::MainController::showElementProperties | ( | unsigned int | eltId,
|  | bool | isNode
| ) |  | `[protected, slot]`

This slot is call when a view emit elementSelected Show the element in left part of the GUI

void tlp::MainController::showGraphEditor | ( |  | ) | `[protected, slot]`

This slot is call to ensure the Graph Editor is visible

void tlp::MainController::showViewEditor | ( |  | ) | `[protected, slot]`

This slot is call to ensure the View Editor is visible

void tlp::MainController::snapshot | ( |  | ) | `[protected, slot]`

void tlp::MainController::undo | ( |  | ) | `[protected, slot]`

void tlp::MainController::update | ( | ObserverIterator | begin,
|  | ObserverIterator | end
| ) |  | `[protected]`

This function is call when an observable is update

void tlp::MainController::updateCurrentGraphInfos | ( |  | ) | `[protected]`

Update number of nodes/edges in the status bar and the cluster tree widget.

void tlp::MainController::updateUndoRedoInfos | ( |  | ) | `[protected, slot]`

void tlp::MainController::viewRequestChangeGraph | ( | tlp::View * | view,
|  | tlp::Graph * | graph
| ) |  | `[protected, slot]`

This slot is call when a view want to change its graph

virtual void tlp::MainController::widgetWillBeClosed | ( | QObject * | object | ) | `[protected, virtual, slot]`

This slot is call went a view will be closed

Reimplemented from tlp::ControllerViewsManager.

virtual bool tlp::MainController::windowActivated | ( | QWidget * | w | ) | `[protected, virtual, slot]`

This function is call when a view is activated Return true if view can be activated (ie this view exist)

Reimplemented from tlp::ControllerViewsManager.

## Member Data Documentation

QMenu* tlp::MainController::algorithmMenu`[protected]`

bool tlp::MainController::blockUpdate`[protected]`

SGHierarchyWidget* tlp::MainController::clusterTreeWidget`[protected]`

QMenu* tlp::MainController::colorsMenu`[protected]`

QDockWidget* tlp::MainController::configWidgetDock`[protected]`

QTabWidget* tlp::MainController::configWidgetTab`[protected]`

unsigned int tlp::MainController::currentGraphNbEdges`[protected]`

unsigned int tlp::MainController::currentGraphNbNodes`[protected]`

QMenu* tlp::MainController::editMenu`[protected]`

QAction* tlp::MainController::editRedoAction`[protected]`

QAction* tlp::MainController::editUndoAction`[protected]`

ElementPropertiesWidget* tlp::MainController::eltProperties`[protected]`

QAction* tlp::MainController::forceRatioAction`[protected]`

QMenu* tlp::MainController::generalMenu`[protected]`

QMenu* tlp::MainController::graphMenu`[protected]`

Graph* tlp::MainController::graphToReload`[protected]`

bool tlp::MainController::inAlgorithm`[protected]`

QMenu* tlp::MainController::intMenu`[protected]`

std::map<View *, int> tlp::MainController::lastConfigTabIndexOnView`[protected]`

QMenu* tlp::MainController::layoutMenu`[protected]`

QAction* tlp::MainController::mapMetricAction`[protected]`

QMenu* tlp::MainController::metricMenu`[protected]`

Morphing* tlp::MainController::morph`[protected]`

QAction* tlp::MainController::morphingAction`[protected]`

QMenu* tlp::MainController::optionsMenu`[protected]`

QAction* tlp::MainController::printAction`[protected]`

bool tlp::MainController::propertiesListUpdated`[protected]`

PropertyDialog* tlp::MainController::propertiesWidget`[protected]`

QAction* tlp::MainController::redoAction`[protected]`

QMenu* tlp::MainController::selectMenu`[protected]`

QMenu* tlp::MainController::sizesMenu`[protected]`

QAction* tlp::MainController::snapshotAction`[protected]`

QMenu* tlp::MainController::stringMenu`[protected]`

QDockWidget* tlp::MainController::tabWidgetDock`[protected]`

QAction* tlp::MainController::undoAction`[protected]`

QMenu* tlp::MainController::viewMenu`[protected]`

Tulip Software by LaBRI Visualization Team 2001 - 2012