Quick links: Tutorial - Examples - Files - Symbols.
Classes: Hierarchy - Index - List - Members.
Namespaces: Index - base - cs - display.

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cogitantdisplay::EditorGraph Class Reference

Fonctionnalités d'édition d'un graphe conceptuel. More...

#include "cogitant/display/graph.h"

Inheritance diagram for cogitantdisplay::EditorGraph:
cogitantdisplay::Editor cogitantdisplay::PanelEventHandler

Public Member Functions

 EditorGraph (Panel *panel, std::string const &fn, cogitant::iSet igraph, DialogHandler *pdh, Clipboard *clipboard=NULL)
 Constructeur. More...
 
 ~EditorGraph ()
 Destructeur. More...
 
bool onKey (Panel::KbdState ks, Panel::KbdKey kk)
 Réponse à l'évènement appui touche. More...
 
void setPanel (Panel *panel)
 Sélection du Panel. More...
 
bool canExec (Command const &command) const
 L'éditeur peut-il exécuter la commande ? Par défaut cette méthode retoure toujours faux: l'éditeur ne permet l'exécution d'aucune commande. More...
 
std::string producerIconName (Command const &cmd) const
 Accès au nom de l'image correspondant à l'icône du producteur de commande. More...
 
char const ** producerXpm (Command const &cmd) const
 Accès au XPM de l'image correspondant à l'icône du producteur de commande. More...
 
std::string producerToolTip (Command const &cmd) const
 Accès à la chaine de description d'une commande. More...
 
std::string getSupportObjectLabel (unsigned int tp, cogitant::iSet id) const
 Retourne la chaine correspondant à l'intitulé d'un objet du support (type de concept, de relation, d'emboitement et marqueur individuel). More...
 
std::string getSupportObjectPropertyString (unsigned tp, cogitant::iSet id, cogitant::Property::Type prop) const
 Retourne la valeur de la propriété d'un objet du support (type de concept, de relation, d'emboitement et marqueur individuel). More...
 
cogitant::iSet findSupportObjectByIdentifier (unsigned int tp, std::string id) const
 Retourne l'identificateur interne (iSet) d'un objet du support caractérisé par son identificateur. More...
 
DrawingGraph const * drawingGraph () const
 Accès au dessin. More...
 
cogitant::Graph const * graph () const
 Accès au graphe. More...
 
cogitant::Support const * support () const
 Accès au support. More...
 
cogitant::Environment const * environment () const
 Accès à l'environnement. More...
 
DrawingGraphdrawingGraph ()
 Accès au dessin. More...
 
cogitant::Graphgraph ()
 Accès au graphe. More...
 
cogitant::Environmentenvironment ()
 Accès à l'environnement. More...
 
cogitant::iSet iGraph () const
 Accès à l'identificateur du graphe édité dans l'environnement. More...
 
void setIGraph (cogitant::iSet ig)
 Modification de l'identificateur du graphe édité. More...
 
- Public Member Functions inherited from cogitantdisplay::Editor
 Editor (Panel *panel, std::string const &nf, DialogHandler *pdh, Clipboard *clipboard=NULL)
 Constructeur. More...
 
virtual ~Editor ()
 Destructeur. More...
 
bool onMouseButton (int button, Point const &p, bool down, Panel::KbdState ks)
 Réponse à l'évènement clic-souris. More...
 
bool onMouseMove (Point const &p)
 Réponse à l'évènement déplacement curseur souris. More...
 
bool onCommandEvent (Command const &cmd)
 Gestion des évènements en provenance du menu ou de la barre d'icones. More...
 
virtual void exec (Command const &command, Clipping &cl)
 Exécution de la commande. More...
 
void addCommandProducer (EditorCommandProducer *pc)
 Ajout d'un producteur de commandes. More...
 
void addListener (EditorListener *l)
 Ajout d'un gestionnaire d'évènements. More...
 
virtual void refresh ()
 Rafraichissement de tous les EditorCommandProducer. More...
 
virtual ProducerState producerState (Command const &cmd) const
 État du producteur de commande. More...
 
std::list< EditorCommandProducer * > const & producers () const
 Les producteurs de commande. More...
 
DisplayHandler const * displayHandler () const
 Accès raccourci au gestionnaire d'affichage. More...
 
DrawHandler const * drawHandler () const
 Accès raccourci au gestionnaire de dessin. More...
 
LayoutHandler const * layoutHandler () const
 Accès raccourci au gestionnaire de mise en forme. More...
 
Context const * context () const
 Accès raccourci au contexte. More...
 
Contextcontext ()
 Accès raccourci au contexte. More...
 
Drawingdrawing ()
 Accès raccourci au dessin. More...
 
Drawing const * drawing () const
 Accès raccourci au dessin. More...
 
DialogHandlerdialogHandler ()
 Accès au gestionnaire de boites de dialogue de propriétés. More...
 
Panelpanel ()
 Accès au Panel. More...
 
Panel const * panel () const
 Accès au Panel. More...
 
bool readOnly () const
 Accès à l'état de lecture seule. More...
 
bool needsSave () const
 Retourne vrai ssi le graphe a été modifié depuis la dernière sauvegarde. More...
 
bool canClose () const
 Retourne vrai ssi l'éditeur peut être fermé immédiatement. More...
 
void addClipping (Drawing::Element const &el, Clipping &cl, bool linked=false)
 Ajout au clipping de la zone correspondant à l'élément. More...
 
void setPropertyBefore (cogitant::Property::Type tp, Drawing::Element const &el, Clipping *cl)
 Traitements à effectuer avant modification d'une propriété d'un élément. More...
 
void setPropertyAfter (cogitant::Property::Type tp, Drawing::Element const &el, Clipping *cl)
 Traitements à effectuer après modification d'une propriété d'un élément. More...
 
virtual void setFileName (std::string const &fn)
 Modification du nom de fichier associé au dessin édité. More...
 
virtual void setReadOnly (bool ro)
 Modification de l'état de lecture seule. More...
 
virtual void setNeedsSave (bool ns=true)
 Signalement d'une modification du dessin. More...
 
virtual void setPanelResize (bool pr=true)
 Choix du redimensionnement automatique du Panel. More...
 
- Public Member Functions inherited from cogitantdisplay::PanelEventHandler
 PanelEventHandler (Panel *panel)
 Constructeur. More...
 
virtual ~PanelEventHandler ()
 Destructeur. More...
 
Panelpanel ()
 Accès au Panel. More...
 

Protected Member Functions

unsigned int undoSize () const
 Nombre actuel d'annulations possibles. More...
 
void undoMemo (Command const &cmd)
 Stockage du dessin actuel dans l'historique. More...
 
void undoApply (unsigned int h)
 Modifie le dessin courant qui est remplacé par le dessin stocké dans l'historique. More...
 
unsigned int undoPos () const
 Position actuelle dans l'historique. More...
 
void undoClear ()
 Vider l'historique. More...
 
void erase (Clipping &cl)
 Suppression des objets de la sélection. More...
 
void copy ()
 Copie des objets de la sélection dans le presse-papiers. More...
 
void pasteEnd (Point const &p, Clipping &cl)
 Coller. More...
 
void unlink (Drawing::Element const &ellink, bool end, Clipping &cl)
 Suppression d'un lien. More...
 
void link (Drawing::Element const &ellink, Drawing::Element const &newlinked, bool end, Clipping &cl)
 Ajout d'un lien. More...
 
void newElement (unsigned int objecttype, Point const &p, Clipping &cl)
 Création d'un objet. More...
 
bool saveAs ()
 Sauvegarde du dessin en cours d'édition avec demande du nom de fichier. More...
 
bool saveFile ()
 Sauvegarde du dessin en cours d'édition, sans interactions avec l'utilisateur. More...
 
bool open (Clipping &cl)
 Chargement d'un nouveau dessin dans le dessin en cours d'édition. More...
 
bool newDrawing (Clipping &cl)
 Suppression du dessin courant et création d'un nouveau. More...
 
bool verify (unsigned int verif, Clipping &cl)
 Vérification du dessin en cours d'édition. More...
 
void defaultProducersToolbar (std::vector< Command > &dpt) const
 Commandes des producteurs d'une barre d'outils par défaut de l'éditeur. More...
 
unsigned int clipboardType (cogitant::iSet *idest=NULL) const
 Contenu du presse-papiers. More...
 
- Protected Member Functions inherited from cogitantdisplay::Editor
virtual bool under (Point const &p, Drawing::Element &el, bool selectableonly) const
 Quel est l'objet situé sous le point. More...
 
bool execIfPossible (Command const &command, Clipping &cl)
 Un simple raccourci. More...
 
virtual void setMode (Mode m, unsigned int submode=0)
 Passage dans un nouveau mode. More...
 
Mode mode () const
 Accès au mode.
 
unsigned int subMode () const
 Accès au sous-mode. More...
 
virtual unsigned int undoMax () const
 Nombre maximum d'annulations possibles. More...
 
virtual void clearSelect (Clipping &cl)
 Vider la sélection. More...
 
virtual void addSelect (Drawing::Element const &el, Clipping &cl)
 Ajout à la sélection. More...
 
virtual void removeSelect (Drawing::Element const &el, Clipping &cl)
 Retrait de la sélection. More...
 
virtual void childrenSelect (Drawing::Element const &el, Clipping &cl)
 Ajout de des fils d'un élément à la sélection. More...
 
bool isSelected (Drawing::Element const &el)
 L'objet est-il sélectionné. More...
 
virtual void beginMove (Point const &p, Clipping &cl)
 Début du mouvement. More...
 
virtual void endMove (Clipping &cl)
 Fin du mouvement. More...
 
virtual void cancelMove (Clipping &cl)
 Annulation du mouvement. More...
 
virtual void move (Clipping &cl, Coord dx, Coord dy)
 Mouvement. More...
 
virtual void selectMode ()
 Retour au mode de sélection d'objet. More...
 
virtual bool edit (Clipping &cl)
 Édition des objets de la sélection. More...
 
virtual void cut (Clipping &cl)
 Coupe les objets de la sélection. More...
 
virtual void pasteBegin ()
 Passage en mode coller. More...
 
virtual void unlinkAll (Clipping &cl)
 Suppression de tous les liens liés aux objets de la sélection. More...
 
virtual void newElementBegin (unsigned int objecttype)
 Passage en mode création d'objet. More...
 
virtual void newElementEnd (unsigned int objecttype, Point const &p, Clipping &cl)
 Création d'un objet et appel éventuel à l'édition des propriétés. More...
 
virtual bool save ()
 Sauvegarde du dessin en cours d'édition. More...
 
virtual bool close (Clipping &cl)
 Demande à l'utilisateur si il désire sauver les dernières modifications du dessin en cours. More...
 
virtual void verifyClear (Clipping &cl)
 Effacement des erreurs signalées. More...
 
virtual void undo (Clipping &cl)
 Annulation de la dernière action. More...
 
virtual void redo (Clipping &cl)
 Annulation de la dernière annulation. More...
 
virtual void setClipboard (Drawing &d)
 Fixe le contenu du presse-papiers au dessin passé en paramètre. More...
 
virtual void initNewElements (std::list< Drawing::Element > const &ne, Point const &cp, Clipping &cl)
 Initialise les coordonnées graphiques de nouveaux objets. More...
 

Protected Attributes

cogitant::iSet m_igraph
 Identificateur du graphe édité. More...
 
unsigned int m_undopos
 Position actuelle dans l'historique. More...
 
std::vector< cogitant::Graph * > m_undobuffer
 Historique. More...
 
- Protected Attributes inherited from cogitantdisplay::Editor
std::string m_filename
 Nom du fichier ayant servi à charger le document courant.
 
std::list< Drawing::Elementm_select
 Éléments sélectionnés.
 
Point m_moveorig
 Coordonnées du point origine du déplacement.
 
std::list< Pointm_selectpos
 Coordonnées des éléments de la sélection avant le mouvement.
 
std::list< Drawing::Elementm_selectlink
 Liens des arêtes avant le mouvement.
 
DialogHandlerm_propdialhandler
 Gestionnaire d'édition de propriétés.
 
bool m_editafternew
 Affichage de la boîte d'édition des propriétés juste après la création d'un élément. More...
 
bool m_selectafternew
 Retour au mode sélection après création d'un nouvel élément. More...
 
bool m_panelresize
 Redimensionnement automatique des ascenseurs dans le Panel d'affichage. More...
 
Clipboardm_clipboard
 Presse-papiers utilisé par l'éditeur.
 
- Protected Attributes inherited from cogitantdisplay::PanelEventHandler
Panelm_panel
 Panel géré par le gestionnaire d'évènements.
 

Additional Inherited Members

- Public Types inherited from cogitantdisplay::Editor
enum  CommandType {
  SELECT_ADD, SELECT_CLEAR, SELECT_REMOVE, SELECT_ALL,
  MOVE_BEGIN, MOVE_MOVE, MOVE_END, MOVE_CANCEL,
  EDIT, ERASE, UNLINK_ALL, UNLINK,
  LINK, NEWELEMENT_BEGIN, NEWELEMENT_END, SELECT_MODE,
  COPY, CUT, PASTE_BEGIN, PASTE_END,
  OPEN, SAVE, SAVE_AS, NEW,
  CLOSE, VERIFY, VERIFY_CLEAR, UNDO,
  REDO, UNKNOWN
}
 Type de commande. More...
 
typedef unsigned char ProducerState
 État d'un producteur de commande. More...
 
- Static Public Attributes inherited from cogitantdisplay::Editor
static const ProducerState PRODUCER_VISIBLE
 Le producteur est visible. More...
 
static const ProducerState PRODUCER_ENABLED
 Le producteur peut être sélectionné par l'utilisateur. More...
 
static const ProducerState PRODUCER_TOGGLE
 Le producteur a deux états sélectionné / non sélectionné. More...
 
static const ProducerState PRODUCER_SELECTED
 Le producteur est dans l'état "sélectionné". More...
 
- Protected Types inherited from cogitantdisplay::Editor
enum  Mode {
  MODE_SELECT, MODE_MOVE_FIRST, MODE_MOVE, MODE_NEWELEMENT,
  MODE_PASTE
}
 Mode de l'éditeur. More...
 

Detailed Description

Fonctionnalités d'édition d'un graphe conceptuel.

Les différents "sous-modes" de création d'objets dans cette classe sont :

Constructor & Destructor Documentation

◆ EditorGraph()

cogitantdisplay::EditorGraph::EditorGraph ( Panel panel,
std::string const &  fn,
cogitant::iSet  igraph,
DialogHandler pdh,
Clipboard clipboard = NULL 
)

Constructeur.

Parameters
panelPanel géré par l'éditeur.
fnnom du fichier contenant le graphe édité.
igraphidentificateur du graphe édité dans l'environnement. Si l'utilisateur peut charger un nouveau graphe, le graphe igraph peut être supprimé, et un nouveau graphe peut être chargé dans l'environnement. Si ISET_NULL est passé, l'utilisateur ne pourra pas charger un nouveau graphe.
pdhgestionnaire de boîtes de dialogue utilisé par l'éditeur.
clipboardpresse-papiers utilisé par l'éditeur.

◆ ~EditorGraph()

cogitantdisplay::EditorGraph::~EditorGraph ( )

Destructeur.

Member Function Documentation

◆ canExec()

bool cogitantdisplay::EditorGraph::canExec ( Command const &  command) const
virtual

L'éditeur peut-il exécuter la commande ? Par défaut cette méthode retoure toujours faux: l'éditeur ne permet l'exécution d'aucune commande.

Il est donc nécessaire de définir une sous classe permettant d'exécuter certaines (ou toutes les) commandes.

Reimplemented from cogitantdisplay::Editor.

◆ clipboardType()

unsigned int cogitantdisplay::EditorGraph::clipboardType ( cogitant::iSet idest = NULL) const
protected

Contenu du presse-papiers.

Parameters
idestPar défaut (NULL) le graphe temporaire construit pour déterminé le type du presse-papiers est détuit dans cette méthode. Si un pointeur non NULL sur un iSet est passé, le iSet en question contiendra après l'appel l'identificateur (dans l'environnement associé au graphe actuellement affiché) du graphe qui a été construit suite à la lecture du presse-papiers. Dans ce cas, il est donc nécessaire de détruire explicitement ce graphe après usage par Environment::deleteGraph().
Returns
0 : vide (aucun format ne pouvant être interprété), 1 : incorrect (par exemple, un graphe défini sur un autre support), 2 : un (des) concept(s) et/ou une (des) relation(s), 3 : un (des) emboîtements.

◆ copy()

void cogitantdisplay::EditorGraph::copy ( )
protectedvirtual

Copie des objets de la sélection dans le presse-papiers.

Par défaut, n'effectue aucun traitement, puisque le format est inconnu.

Reimplemented from cogitantdisplay::Editor.

◆ defaultProducersToolbar()

void cogitantdisplay::EditorGraph::defaultProducersToolbar ( std::vector< Command > &  dpt) const
protectedvirtual

Commandes des producteurs d'une barre d'outils par défaut de l'éditeur.

Cette méthode remplit le vector passé en paramètre avec les commandes des producteurs de commande qui doivent affichés par défaut dans une barre d'outils de l'éditeur.

Reimplemented from cogitantdisplay::Editor.

◆ drawingGraph() [1/2]

DrawingGraph const* cogitantdisplay::EditorGraph::drawingGraph ( ) const

Accès au dessin.

◆ drawingGraph() [2/2]

DrawingGraph* cogitantdisplay::EditorGraph::drawingGraph ( )

Accès au dessin.

◆ environment() [1/2]

cogitant::Environment const* cogitantdisplay::EditorGraph::environment ( ) const

Accès à l'environnement.

◆ environment() [2/2]

cogitant::Environment* cogitantdisplay::EditorGraph::environment ( )

Accès à l'environnement.

◆ erase()

void cogitantdisplay::EditorGraph::erase ( Clipping cl)
protectedvirtual

Suppression des objets de la sélection.

Par défaut, n'effectue aucun traitement, la méthode doit donc être redéfinie dans les sous-classes.

Reimplemented from cogitantdisplay::Editor.

◆ findSupportObjectByIdentifier()

cogitant::iSet cogitantdisplay::EditorGraph::findSupportObjectByIdentifier ( unsigned int  tp,
std::string  id 
) const

Retourne l'identificateur interne (iSet) d'un objet du support caractérisé par son identificateur.

Parameters
tptype d'objet du support: 1: type de concept, 2: type de relation, 3: type d'emboitement, 4: marqueur individuel.
idvaleur d'identicateur recherchée.
Returns
identificateur de l'objet ayant cette valeur de propriété ou ISET_NULL si introuvable.

◆ getSupportObjectLabel()

std::string cogitantdisplay::EditorGraph::getSupportObjectLabel ( unsigned int  tp,
cogitant::iSet  id 
) const

Retourne la chaine correspondant à l'intitulé d'un objet du support (type de concept, de relation, d'emboitement et marqueur individuel).

Parameters
tptype d'objet du support: 1: type de concept, 2: type de relation, 3: type d'emboitement, 4: marqueur individuel.
ididentificateur de l'objet du support.
Returns
une chaine vide si id ne correspond pas à un objet valide, et la chaine de caractères correspondant à l'intitulé de l'objet sinon.

◆ getSupportObjectPropertyString()

std::string cogitantdisplay::EditorGraph::getSupportObjectPropertyString ( unsigned  tp,
cogitant::iSet  id,
cogitant::Property::Type  prop 
) const

Retourne la valeur de la propriété d'un objet du support (type de concept, de relation, d'emboitement et marqueur individuel).

Parameters
tptype d'objet du support: 1: type de concept, 2: type de relation, 3: type d'emboitement, 4: marqueur individuel.
ididentificateur de l'objet du support.
proppropriété.
Returns
une chaine vide si id ne correspond pas à un objet valide, et la chaine de caractères correspondant à l'intitulé de l'objet sinon.

◆ graph() [1/2]

cogitant::Graph const* cogitantdisplay::EditorGraph::graph ( ) const

Accès au graphe.

◆ graph() [2/2]

cogitant::Graph* cogitantdisplay::EditorGraph::graph ( )

Accès au graphe.

◆ iGraph()

cogitant::iSet cogitantdisplay::EditorGraph::iGraph ( ) const

Accès à l'identificateur du graphe édité dans l'environnement.

◆ link()

void cogitantdisplay::EditorGraph::link ( Drawing::Element const &  ellink,
Drawing::Element const &  newlinked,
bool  end,
Clipping cl 
)
protectedvirtual

Ajout d'un lien.

Par défaut, le seul traitement effectué est la suppression des propriétés cogitant::Property::DISPLAY_POS_X et cogitant::Property::DISPLAY_POS_Y de l'arête. La méthode doit donc être redéfinie dans les sous-classes.

Parameters
ellinkÉlément lien.
newlinkedÉlément à lier au lien.
endextrémité (true) ou origine (false).
cl(D/R) la méthode ajoute à ce clipping la zone nécessaire au rafraichissement.

Reimplemented from cogitantdisplay::Editor.

◆ newDrawing()

bool cogitantdisplay::EditorGraph::newDrawing ( Clipping cl)
protectedvirtual

Suppression du dessin courant et création d'un nouveau.

Par défaut, cette méthode ne modifie pas le dessin courant, et doit être redéfinie dans les sous-classes pour effectuer réellement le traitement. Cette méthode se charge par contre de demander à l'utilisateur si il désire réellement supprimer le dessin.

Parameters
clle clipping qui doit être redessiné.
Returns
true ssi l'utilisateur confirme la suppression du dessin courant.

Reimplemented from cogitantdisplay::Editor.

◆ newElement()

void cogitantdisplay::EditorGraph::newElement ( unsigned int  objecttype,
Point const &  p,
Clipping cl 
)
protectedvirtual

Création d'un objet.

Cette méthode doit effectivement créer un objet, c'est donc celle-ci (parmi les méthodes newElementxxx()) qui doit être redéfinie dans les sous-classes pour créer effectivement l'objet. Après appel à newElement(), la sélection doit contenir exactement l'(les) élément(s) créé(s) (pour l'edition).

Parameters
objecttypetype d'objet à créer (dépend de la sous-classe d'Editor).
ppoint où le nouvel objet doit être créé.
clclipping à modifier pour repérer le nouvel objet.

Reimplemented from cogitantdisplay::Editor.

◆ onKey()

bool cogitantdisplay::EditorGraph::onKey ( Panel::KbdState  ks,
Panel::KbdKey  kk 
)
virtual

Réponse à l'évènement appui touche.

Reimplemented from cogitantdisplay::Editor.

◆ open()

bool cogitantdisplay::EditorGraph::open ( Clipping cl)
protectedvirtual

Chargement d'un nouveau dessin dans le dessin en cours d'édition.

Par défaut, cette méthode ne fait qu'afficher un message d'avertissement dans le cas où le dessin en cours d'éditoin n'a pas été sauvé. La méthode doit être redéfinie dans les sous classes, afin de fournir un mécanisme de chargement, depandant du type de dessin manipulé.

Parameters
clle clipping qui doit être redessiné.
Returns
true ssi l'utilisateur confirme le chargement d'un nouveau dessin qui écrase le dessin courant.

Reimplemented from cogitantdisplay::Editor.

◆ pasteEnd()

void cogitantdisplay::EditorGraph::pasteEnd ( Point const &  p,
Clipping cl 
)
protectedvirtual

Coller.

Cette méthode doit effectivement coller le contenu du presse-papiers. Par défaut, cette méthode ne fait rien, et doit être redéfinie dans les sous-classes.

Parameters
ppoint où le presse-papiers doit être collé.
clclipping à modifier pour repérer les nouveaux objets.

Reimplemented from cogitantdisplay::Editor.

◆ producerIconName()

std::string cogitantdisplay::EditorGraph::producerIconName ( Command const &  cmd) const
virtual

Accès au nom de l'image correspondant à l'icône du producteur de commande.

Parameters
cmdcommande générée par le producteur de commande.

Reimplemented from cogitantdisplay::Editor.

◆ producerToolTip()

std::string cogitantdisplay::EditorGraph::producerToolTip ( Command const &  cmd) const
virtual

Accès à la chaine de description d'une commande.

Parameters
cmdcommande générée par le producteur de commande.
Returns
chaîne qui est habituellement utilisée pour le "tooltip" du bouton correspondant au producteur.

Reimplemented from cogitantdisplay::Editor.

◆ producerXpm()

char const** cogitantdisplay::EditorGraph::producerXpm ( Command const &  cmd) const
virtual

Accès au XPM de l'image correspondant à l'icône du producteur de commande.

Parameters
cmdcommande générée par le producteur de commande.

Reimplemented from cogitantdisplay::Editor.

◆ saveAs()

bool cogitantdisplay::EditorGraph::saveAs ( )
protectedvirtual

Sauvegarde du dessin en cours d'édition avec demande du nom de fichier.

Les noms des formats étant inconnus, par défaut, cette méthode affiche un sélecteur de fichier permettant de choisir un fichier avec n'importe quelle extension, et appelle saveFile() sur le fichier choisi. Il est donc nécessaire de redéfinir cette méthode pour offrir un sélecteur de fichier permettant de choisir parmi les formats disponibles, en fonction du type de dessin édité.

Returns
true ssi la sauvegarde a été effectuée.

Reimplemented from cogitantdisplay::Editor.

◆ saveFile()

bool cogitantdisplay::EditorGraph::saveFile ( )
protectedvirtual

Sauvegarde du dessin en cours d'édition, sans interactions avec l'utilisateur.

Cette méthode se contente de sauvegarder le dessin en cours d'édition. Quand elle est appelée (par save() ou saveAs(), le nom du dessin est fixé). C'est donc dans cette méthode (et non dans save() ou saveAs() que la sauvegarde doit être effecuée, les deux autres méthodes se contentant d'appeler celle-ci. Par défaut, cette méthode ne fait que modifier l'état de m_needssaver, mais n'effectue pas de réelle sauvegarde, car la sauvegarde dépend du type de dessin édité.

Returns
true ssi la sauvegarde a été effectuée.

Reimplemented from cogitantdisplay::Editor.

◆ setIGraph()

void cogitantdisplay::EditorGraph::setIGraph ( cogitant::iSet  ig)

Modification de l'identificateur du graphe édité.

A manier avec précautions.

◆ setPanel()

void cogitantdisplay::EditorGraph::setPanel ( Panel panel)
virtual

Sélection du Panel.

Reimplemented from cogitantdisplay::PanelEventHandler.

◆ support()

cogitant::Support const* cogitantdisplay::EditorGraph::support ( ) const

Accès au support.

◆ undoApply()

void cogitantdisplay::EditorGraph::undoApply ( unsigned int  h)
protectedvirtual

Modifie le dessin courant qui est remplacé par le dessin stocké dans l'historique.

Cette méthode doit être redéfinie dans les sous-classes d'Editor afin de modifier effectivement l'objet en cours d'édition et le remplacer par l'entrée de l'historique.

Reimplemented from cogitantdisplay::Editor.

◆ undoClear()

void cogitantdisplay::EditorGraph::undoClear ( )
protectedvirtual

Vider l'historique.

Reimplemented from cogitantdisplay::Editor.

◆ undoMemo()

void cogitantdisplay::EditorGraph::undoMemo ( Command const &  cmd)
protectedvirtual

Stockage du dessin actuel dans l'historique.

Parameters
cmdla commande qui provoque la modification de l'objet en cours d'édition. Cette méthode doit être redéfinie dans les sous-classes (par défaut, elle ne fait rien), afin de mémoriser soit la commande, soit l'objet en cours d'édition.

Reimplemented from cogitantdisplay::Editor.

◆ undoPos()

unsigned int cogitantdisplay::EditorGraph::undoPos ( ) const
protectedvirtual

Position actuelle dans l'historique.

Reimplemented from cogitantdisplay::Editor.

◆ undoSize()

unsigned int cogitantdisplay::EditorGraph::undoSize ( ) const
protectedvirtual

Nombre actuel d'annulations possibles.

Reimplemented from cogitantdisplay::Editor.

◆ unlink()

void cogitantdisplay::EditorGraph::unlink ( Drawing::Element const &  ellink,
bool  end,
Clipping cl 
)
protectedvirtual

Suppression d'un lien.

Par défaut, n'effectue aucun traitement, la méthode doit donc être redéfinie dans les sous-classes.

Parameters
ellinkÉlément lien.
endextrémité (true) ou origine (false).
cl(D/R) ajoute à ce clipping la zone devant être redessinée pour montrer la suppression du lien.

Reimplemented from cogitantdisplay::Editor.

◆ verify()

bool cogitantdisplay::EditorGraph::verify ( unsigned int  verif,
Clipping cl 
)
protectedvirtual

Vérification du dessin en cours d'édition.

Par défaut aucun élément de dessin n'est mis en erreur. Cette méthode est donc équivalente à verifyClear(), et doit donc être redéfinie dans les sous-classes pour vérifier que le dessin construit respecte bien les rêgles choisies.

Parameters
verifDifférentes vérifications peuvent être effectuées selon le type de dessin, et ce paramètre peut donc être utilisé par les sous-classes d'Editor pour lancer les différentes vérifications. Si 0 est passé en paramètre, toutes les vérifications sont exécutées.
clCe clipping est modifié pour contenir les zones des objets en erreur.
Returns
true si le dessin en cours ne comporte aucune erreur (parmi les vérifications effectuées) et false sinon.

Reimplemented from cogitantdisplay::Editor.

Member Data Documentation

◆ m_igraph

cogitant::iSet cogitantdisplay::EditorGraph::m_igraph
protected

Identificateur du graphe édité.

Attention : si l'utilisateur peut charger un graphe, l'identificateur de graphe courant peut changer. En effet, lors du chargement d'un graphe, le graphe édité est supprimé de l'environnement et un nouveau graphe est chargé, qui est donc affecté (éventuellement) d'un nouvel identificateur. L'application qui utilise EditorGraph peut utiliser la méthode iGraph() pour connaître l'identificateur du graphe édité.

◆ m_undobuffer

std::vector<cogitant::Graph *> cogitantdisplay::EditorGraph::m_undobuffer
protected

Historique.

◆ m_undopos

unsigned int cogitantdisplay::EditorGraph::m_undopos
protected

Position actuelle dans l'historique.