Dispositif et procédé d'affichage pour un logiciel applicatif multi-fenêtres
La présente invention concerne un dispositif d'affichage, du type comportant :
- au moins un écran ;
- plusieurs modules fonctionnels, chacun comportant un programme applicatif dont le résultat est propre à être affiché dans une fenêtre propre au module fonctionnel ;
- au moins deux espaces de travail définis chacun par un ensemble de modules fonctionnels à afficher sur l'écran lorsque l'espace de travail est sélectionné ;
- des moyens pour sélectionner un espace de travail pour un écran et afficher cet espace de travail.
De nos jours, les ordinateurs utilisent plusieurs applications ou modules fonctionnels ouverts simultanément et affichés chacun dans une fenêtre propre d'un même écran. Chacun de ces modules fonctionnels est propre à réaliser un traitement sous la commande d'un programme applicatif, tel que permettre la saisie de données, afficher des images fixes ou animées, servir de bloc-notes, ou encore d'interface de communication sur un réseau.
Le grand nombre de modules fonctionnels et donc de fenêtres parfois présents sur un même écran rend la gestion efficace du travail difficile pour l'utilisateur.
Pour faciliter ce travail, il est connu d'utiliser des espaces de travail. Chaque espace de travail comporte un ensemble de modules fonctionnels qui lui est propre. Ces modules fonctionnels sont affichés simultanément sur l'écran lorsque l'utilisateur sélectionne cet espace de travail. Des moyens de sélection permettent de passer d'un espace de travail à un autre espace de travail, permettant ainsi à l'utilisateur de modifier en une seule opération les modules fonctionnels visibles sur son écran.
Dans chaque espace de travail, il est possible, pour l'utilisateur, de placer l'un des modules fonctionnels au second plan en fond d'écran. Le module fonctionnel en fond d'écran couvre alors l'ensemble de l'écran au second plan et les autres modules fonctionnels s'affichent dans des fenêtres de taille plus réduite en superposition sur le module fonctionnel mis en fond d'écran.
Lorsque l'utilisateur passe d'un espace de travail à un autre, le module fonctionnel en fond d'écran, qui est propre à l'espace de travail, change de manière correspondante.
L'utilisation de ces différents espaces de travail, même sur plusieurs écrans, est relativement complexe pour l'utilisateur, qui doit gérer les positions relatives des différents modules fonctionnels sur l'écran.
L'invention a pour but de proposer un dispositif d'affichage permettant de faciliter la gestion efficace du travail de l'utilisateur lors du passage d'un espace de travail vers un autre.
A cet effet, l'invention a pour objet un dispositif d'affichage du type précité caractérisé en ce que caractérisé en ce qu'il comporte :
- des moyens pour choisir un unique module fonctionnel à mettre au tapis parmi un ensemble d'au moins deux modules fonctionnels ;
- des moyens d'affichage sur l'écran du module fonctionnel choisi mis au tapis au second plan de l'écran et des modules fonctionnels de l'espace de travail sélectionné au premier plan de l'écran au-dessus de l'affichage du module fonctionnel choisi mis au tapis ;
- le module fonctionnel choisi mis au tapis étant maintenu affiché au second plan lors du passage d'un espace de travail à un autre.
Suivant des modes particuliers de réalisation, le dispositif comporte une ou plusieurs des caractéristiques suivantes :
- ledit dispositif comporte des moyens pour sélectionner au moins un module fonctionnel à punaiser devant être visible sur le module fonctionnel choisi mis au tapis quel que soit l'espace de travail choisi et des moyens pour maintenir affiché le module fonctionnel punaisé sur le module fonctionnel choisi mis au tapis même lors du passage d'un espace de travail à un autre espace de travail ;
- ledit dispositif comporte au moins deux écrans et des moyens pour afficher, sur chaque écran, le même module fonctionnel choisi mis au tapis, quel que soit l'espace de travail sélectionné pour chaque écran ;
- ledit dispositif comporte au moins deux écrans et des moyens pour afficher le module fonctionnel choisi mis au tapis réparti sur la surface des écrans ;
- chaque module fonctionnel comporte au moins un bandeau de commande et lorsque les moyens d'affichage comportent des moyens pour supprimer l'affichage du bandeau de commande du module fonctionnel choisi est mis au tapis ; et
- les moyens d'affichage comportent pour la gestion des affichages des modules fonctionnels sur l'écran deux couches logicielles distinctes de gestion de l'affichage des modules fonctionnels sur l'écran, chaque couche définissant des règles d'affichage distinctes, et les moyens d'affichage sont propres à transférer l'instance d'un module fonctionnel d'une couche logicielle de gestion de l'affichage à l'autre, lorsque l'état de mis au tapis du module fonctionnel est modifié.
L'invention a en outre pour objet un réseau informatique comportant au moins deux dispositifs d'affichage chacun associé à une unité de traitement d'informations,
chacune munie d'un dispositif d'affichage tel que défini ci-dessus, caractérisé en ce que les dispositifs d'affichage sont propres à afficher le même module fonctionnel sélectionné mis au tapis sur le ou chaque écran qui lui est propre.
L'invention a également pour objet un procédé d'affichage sur un écran pour un logiciel applicatif comportant :
- pour plusieurs modules fonctionnels, chacun comportant un programme applicatif, l'affichage du résultat du programme applicatif dans une fenêtre propre au module fonctionnel ;
- la sélection d'un espace de travail pour cet écran parmi au moins deux espaces de travail définis chacun par un ensemble de modules fonctionnels à afficher sur l'écran lorsque l'espace de travail est sélectionné ;
caractérisé en ce qu'il comporte :
- le choix d'un unique module fonctionnel à mettre au tapis parmi un ensemble d'au moins deux modules fonctionnels ;
- l'affichage sur l'écran du module fonctionnel choisi mis au tapis au second plan de l'écran et des modules fonctionnels de l'espace de travail sélectionné au premier plan de l'écran au-dessus de l'affichage du module fonctionnel choisi mis au tapis ;
- le module fonctionnel choisi mis au tapis étant maintenu affiché au second plan lors du passage d'un espace de travail à un autre.
Enfin, l'invention a pour objet un programme d'ordinateur comportant des instructions qui, lorsqu'elles sont exécutées sur un calculateur relié à au moins un écran, mettent en œuvre le procédé ci-dessus.
L'invention a enfin pour objet un programme d'ordinateur qui, lorsqu'il est mis en œuvre sur un calculateur muni d'un écran, est apte à mettre en œuvre les étapes du procédé tel que défini ci-dessus.
L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins sur lesquels :
- la figure 1 est une vue schématique de la structure de l'application ;
- la figure 2 est une vue d'une fenêtre correspondant à l'affichage d'un module fonctionnel ;
- la figure 3 est une vue schématique de plans de fenêtres superposés affichés sur un écran ;
- la figure 4 est une vue schématique de l'architecture du module pour gérer des espaces de travail, des modules fonctionnels et leurs affichages ;
- la figure 5 est une vue chronologique d'un même écran montrant l'évolution de l'affichage lors du changement d'espace de travail sur cet écran ;
- la figure 6 est une vue chronologique d'un même écran montrant l'évolution de l'affichage lors du changement de module fonctionnel mis au tapis ;
- la figure 7 est une vue chronologique d'un même écran montrant l'évolution de l'affichage lors du passage entre deux espaces de travail après punaisage de l'un des modules fonctionnels ;
- la figure 8 est une vue de plusieurs écrans sur lesquels fonctionne l'application, le module fonctionnel mis au tapis s'étendant sur plusieurs écrans ; et
- la figure 9 est une vue identique à celle de la figure 8, le même module fonctionnel mis au tapis étant réparti sur les écrans.
Le dispositif d'affichage selon l'invention est destiné à permettre l'usage par un ou plusieurs utilisateurs de plusieurs modules fonctionnels simultanément. L'ensemble de ces modules fonctionnels est appelé application ou logiciel applicatif dans la suite.
Ce dispositif comporte au moins un écran d'affichage, commandé par une unité de traitement d'informations mettant en œuvre l'ensemble des modules fonctionnels du logiciel applicatif, dont certains modules sont propres à la gestion de l'affichage sur l'écran. Cette unité est, par exemple, l'unité centrale d'un ordinateur relié en réseau.
Ce dispositif d'affichage est particulièrement adapté pour une application de surveillance et/ou de commandement d'application de grande envergure sur des terrains d'opération tels que des guerres, des opérations de maintien de l'ordre, des catastrophes naturelles ou industrielles. Notamment, ce dispositif est utile lorsque certains modules fonctionnels sont propres à l'affichage de cartes sur lesquelles interviennent les autres modules fonctionnels de manière interactive.
L'application 10 dont la structure est illustrée schématiquement sur la figure 1 comporte un ensemble de modules fonctionnels notés MFA à MFN. Il comporte en outre un module 12 de gestion de l'affichage des différents modules fonctionnels sur un écran.
Chaque module fonctionnel comporte un programme applicatif propre dont le résultat est, comme illustré sur la figure 2, susceptible d'être affiché dans une fenêtre 14 représentée sur un écran.
Cette fenêtre 14 comporte, dans sa partie centrale, une zone de restitution 16 présentant le résultat produit par programme applicatif ou permettant la saisie de données pour ce module fonctionnel. Sur l'exemple représenté, la zone 16 représente une carte d'un terrain d'opérations qui sont commandées et supervisées par l'application.
Dans sa partie inférieure, la fenêtre 14 comporte un bandeau horizontal inférieur 18 comportant des icônes permettant le déclenchement de certaines opérations propres au module fonctionnel. Elle comprend en outre un bandeau horizontal supérieur 20
comportant des menus déroulants. Ces deux bandeaux forment ensemble un cadre amovible de la fenêtre.
Dans sa partie droite, le bandeau supérieur 20 comporte trois icônes de commande de l'affichage du module fonctionnel.
Un premier icône 22 figuré par une croix entourée d'un cercle est propre, lorsqu'il est sélectionné, à commander la fermeture du module fonctionnel et donc la disparition de l'affichage de la fenêtre sur l'écran.
L'icône 24, figuré par quatre flèches divergentes, est propre à assurer une mise au tapis du module fonctionnel. Cette mise au tapis consiste notamment en l'affichage de la zone de restitution 16 de la fenêtre au second plan de l'écran. Les autres fenêtres présentes sur l'écran sont affichées au premier plan et recouvrent alors l'affichage correspondant au module fonctionnel mis au tapis.
L'icône 26, figuré par une punaise, est propre, lorsqu'il est sélectionné, à commander le punaisage du module fonctionnel au second plan de l'écran. Le module est alors punaisé sur le module fonctionnel mis au tapis, provoquant l'indissociabilité des fenêtres du module fonctionnel punaisé et du module fonctionnel mis au tapis quel que soit l'espace de travail sélectionné. Ce mode particulier d'affichage sera décrit dans la suite de la description.
L'application 10 comporte en outre la définition, modifiable par l'utilisateur, de plusieurs espaces de travail 30 désignés par ESP1 , ESP2, à ESPN et illustrés sur la figure 1 .
Chaque espace de travail comporte l'identification de certains modules fonctionnels propres à l'espace de travail ainsi que la région de représentation de la fenêtre correspondant à chaque module fonctionnel de l'espace de travail sur l'écran d'affichage.
Par exemple, et comme illustré sur la figure 3, un module fonctionnel 32 est mis au tapis et est affiché au second plan en fond d'écran. Trois espaces de travail distincts 34A, 34B, 34C sont affichés sélectivement au choix de l'utilisateur sur l'écran sur le module fonctionnel 32 mis au tapis.
L'espace de travail 34A comporte par exemple trois modules fonctionnels visibles dans trois fenêtres de petites tailles alignées horizontalement dans la partie supérieure de l'écran.
Le second espace de travail 34B comporte trois modules fonctionnels figurant dans des fenêtres de petites tailles alignées verticalement dans la partie gauche de l'écran et un quatrième module fonctionnel figurant dans une fenêtre rectangulaire couvrant la partie basse restante de l'écran.
Le dernier espace de travail 34C comporte deux modules fonctionnels représentés dans des fenêtres rectangulaires de petites tailles prévues au coin supérieur droit et au coin inférieur gauche.
Au premier plan est affiché un cadre 35 propre à l'application et comportant seulement deux bandeaux supérieur 36 et inférieur 37.
Seul l'un des espaces de travail 34A, 34B, 34C formant l'espace de travail courant est affiché à un instant donné sur l'écran.
Le module de gestion de l'affichage 12 comporte des moyens de sélection de l'espace de travail à afficher. Par exemple, ces moyens de sélection comportent deux icônes sélectionnâmes en forme de flèche 40A, 40B. Ces flèches sont visibles sur chaque espace de travail lorsqu'il est affiché, dans la partie médiane droite et dans la partie médiane gauche de l'écran. La sélection de l'une des flèches par un pointeur mobile par exemple provoque le défilement des espaces de travail suivant un ordre prédéfini.
Si le dispositif d'affichage comporte plusieurs écrans, le module 12 est adapté pour assurer la sélection et l'affichage d'un espace de travail propre à chaque écran.
Sur la figure 4 est illustrée l'architecture du module de gestion de l'affichage 12, lequel est constitué de différentes couches successives imbriquées désignés de manière incrémentielle de bas en haut. Chaque couche est propre à une fonction, ces couches interagissant les unes avec les autres. Ces couches sont des composants JAVA.
Les différentes couches du module de gestion de l'affichage 12 sont détaillées ci- dessous avec leurs fonctions et leurs interactions.
Couche 0 / JFrame : c'est la fenêtre de l'application. Cette JFrame est présente sur toutes les applications Java.
Couche 1 / JLayeredPane : C'est un conteneur à plusieurs couches qui gère trois composants pour assurer l'affichage au second plan des parties suivantes du module fonctionnel mis au tapis :
- le bandeau supérieur 36 de l'application qui comporte une barre d'icônes et une barre de menus ;
- le bandeau inférieur 37 de l'application qui comporte une barre d'état et des informations à présenter de manière permanente ;
- la zone de restitution 16 formant le fond ou la partie centrale de l'application gérée par la couche 2 suivante.
Couche 2 / JLayeredPane : c'est la zone de restitution 16 ou la partie centrale de l'application mise au tapis. Ce conteneur possède deux composants formant les couches 3 et 4.
Couche 3 / JDesktopPane : Ce conteneur est un système de gestion de fenêtres utilisé en interne de l'application. Il permet de gérer les fenêtres visualisables au sein de l'application. Ce JDesktopPane est ajouté à l'index 0 (donc au plus bas dans les couches de gestion de fenêtres) permettant qu'une fenêtre sur ce système soit toujours visualisée en dessous.
Couche 4 / JXLayer : Ce conteneur permet de gérer l'effet zoom / dézoom des modules lors de la définition des espaces de travail/modules. Ce fonctionnement est propre à l'application.
Couche 5 / LayerView : C'est un conteneur de « base » (JPanel) qui gère une liste de WorkspaceContainer (JPanel) ou espace de travail. C'est la couche de visualisation (LayerView) qui effectue les transitions/animations des espaces de travail sur la zone de restitution.
Couche 6 / WorkspaceContainer : Ce conteneur représente un espace de travail, permettant de positionner des modules fonctionnels. Afin de gérer le système de fenêtre de ces modules, le conteneur WorkspaceContainer contient un second système de gestion de fenêtre dénommé JDesktopPane (couche 7).
Couche 7 / JDesktopPane : Ce conteneur est le deuxième système de gestion de fenêtres utilisé en interne de l'application, et donc inclus dans le premier. Ce JDesktopPane gère les fenêtres des modules fonctionnels. A chaque fois que l'utilisateur ouvre une fenêtre différente de la fenêtre du module fonctionnel mis au tapis, la fenêtre est gérée par ce second système de gestion de fenêtres JDesktopPane.
Couche 8 : JlnternalFrame : Un JlnternalFrame correspond à un module fonctionnel. Il contient le bandeau supérieur 20 et le bandeau inférieur 18 du module ainsi que le contenu (« module content ») visible dans la zone de restitution 16.
Mettre au tapis ou punaiser un module fonctionnel revient avec cette organisation en couche à descendre son instance sur une couche inférieure permettant fonctionnellement d'avoir un module punaisé ou un module en plein-écran au tapis en dessous des autres modules.
Selon l'invention, l'un des modules fonctionnels est mis au tapis par appui sur l'icône 24. Lors de la mise au tapis, les actions suivantes sont réalisées sur le module.
Le module fonctionnel est mis en fond d'écran, c'est-à-dire qu'il est affiché au second plan avec l'ensemble des autres fenêtres correspondants à des modules fonctionnels en superposition.
A cet effet, l'instance de la couche 8/J Internai Frame gérant le module fonctionnel est placée en couche 3/JDesktopPlane.
En outre, lors de la mise au tapis, le module 12 de gestion de l'affichage commande que :
- les contours du module fonctionnel mis au tapis sont supprimés, seul sa zone de restitution 16 étant visible par l'utilisateur ;
- la taille de la fenêtre du module fonctionnel est modifiée pour prendre tout l'espace de l'application ou de l'écran ; et
- toutes les fonctions du module fonctionnel sont opérationnelles sans aucune restriction.
Les autres modules fonctionnels non mis au tapis sont gérés par la couche 7/JDesktopPlane qui, par construction, assure un affichage au premier plan au-dessus du module fonctionnel mis au tapis.
Selon l'invention, lors de la sélection d'un autre espace de travail, par exemple lors du passage de l'espace de travail 34B à l'espace de travail 34C, le module fonctionnel 14 mis au tapis et dont le contenu est une carte, est maintenu affiché au second plan, seuls les autres modules fonctionnels affichés dans des fenêtres de taille réduite sont modifiés. Le changement d'espace de travail est géré par la couche 5, sans intervention sur la couche 3 inférieure.
Ainsi, l'application est centrée sur une vue cartographique. Il est intéressant pour un utilisateur d'avoir un espace de travail avec uniquement une vue cartographique, permettant d'avoir tout l'espace de l'écran avec la vue cartographique et un autre espace de travail avec la même vue cartographique et d'autres modules applicatifs comme des vues de type hiérarchique tabulaire ou autre.
Avantageusement, et comme illustré sur la figure 5, le module de gestion de l'affichage 12 est adapté pour que, dans le premier espace de travail 34B, un objet présent sur la carte est représenté uniquement par son symbole 60 sur la vue cartographique alors que, dans un deuxième espace de travail 34C, ce même objet est complété par exemple par affichage dans un autre module fonctionnel 62 de sa position dans une vue hiérarchique permettant d'avoir des liens avec d'autres types d'entité ou dans une vue tabulaire pour avoir rapidement les caractéristiques d'objets.
Sur la figure 6 est représentée une modification du module fonctionnel mise au tapis.
Sur l'écran 70, la vue cartographique figure en fond d'écran avec l'espace de travail 34B. L'instance de la JlnternalFrame est alors dans la couche 3/JDesktopPlane. Dans cet espace de travail 34B, le module fonctionnel, dont la fenêtre figure en bas à gauche et notée 72, est supposé être l'image prise par une caméra reliée à l'ordinateur.
L'image figure un bateau voguant sur la mer. L'instance de ce module fonctionnel est gérée en couche 7/JDesktopPlane.
Pour mettre ce module fonctionnel 72 au tapis, l'utilisateur provoque d'abord la remontée de la vue cartographique dans une fenêtre 74 en appuyant de nouveau sur l'icône 24 présent en partie supérieure de l'écran. L'instance du module fonctionnel est alors remontée en couche 7/JDesktopPlane. L'écran présente alors l'aspect de la vue 76. Le module fonctionnel 72 dans la fenêtre 74 est représenté dans la partie supérieure droite.
L'utilisateur sélectionne ensuite le module fonctionnel 72 par appui sur un icône 24 de ce module fonctionnel conduisant alors à la représentation visible sur l'image 78. Sur cet affichage, l'image montrant le bateau figure au second plan en fond d'écran. La fenêtre en bas à gauche de l'image a disparu et la fenêtre 74 représentant la vue cartographique figure toujours en partie supérieure droite de l'écran.
La mise au tapis d'un module fonctionnel consiste à faire passer l'instance de la JlnternalFrame de ce module de la couche 7/JDesktopPlane sur la couche 3/JDesktopPlane. La suppression de la mise au tapis d'un module consiste à faire l'inverse.
Les autres fenêtres de l'espace de travail sont maintenues au premier plan en couche 7/DesktopPlane. L'utilisateur passe alors librement d'un espace de travail à un autre, en cliquant sur les flèches médianes 40A, 40B.
Sur la figure 7 est illustré le passage sur les images 80 et 82 entre deux espaces de travail 34B et 34C alors que l'un des modules fonctionnels désigné par 84 a été punaisé. Le module 84 est affiché dans la fenêtre médiane en partie gauche de l'espace de travail 34B.
Lorsque l'utilisateur souhaite que le module fonctionnel 84 soit affiché en permanence sur le module fonctionnel mis au tapis, celui-ci active l'icône 26 du module fonctionnel 84. En réponse, le module de gestion de l'affichage 12 active le passage du module fonctionnel 84 de la couche 7 vers la couche 3 sans pour autant mettre le module fonctionnel en plein écran. Lors d'un changement d'espace de travail, comme illustré sur la figure 7, le module fonctionnel punaisé 84 reste affiché de la même manière que la vue cartographique 32 mise au tapis, le module 84 étant géré seulement par la couche 3.
Un module fonctionnel punaisé peut toujours être agrandi, déplacé, fermé. Il est donc nécessaire d'avoir un système de fenêtres pour le gérer, d'où deux systèmes de fenêtres imbriqués (couche 3 et couche 7).
Selon l'invention, dans une première variante illustrée sur la figure 8, l'image 32 du module fonctionnel mis au tapis se répartit sur plusieurs écrans 90A, 90B, 90C, 90D
permettant ainsi une plus grande surface d'affichage. Chaque écran 90A, 90B, 90C, 90D dispose d'un espace de travail propre mis à disposition par le logiciel et choisi librement par l'utilisateur par l'usage des flèches médianes 40A, 40B.
La taille du module fonctionnel, ici la vue cartographique mise au tapis prend ainsi la dimension des différents écrans permettant un affichage plus grand de la vue cartographique.
Suivant une autre variante, illustré sur la figure 9, l'ensemble des écrans 90A, 90B, 90C, 90D présente le même module fonctionnel mis au tapis, permettant ainsi à l'utilisateur de disposer de la même vue cartographique, avec des espaces de travail différents et des représentations adaptées des éléments de la vue cartographique en fonction des espaces de travail sélectionnés pour chaque écran comme exposé au regard de la figure 7.
Lorsque l'application est utilisée en réseau par plusieurs utilisateurs depuis plusieurs unités de traitement commandant chacune au moins un écran, suivant une première variante, les moyens de gestion de l'affichage 12 comprennent des moyens de sélection par chaque utilisateur d'un module fonctionnel mis au tapis qui lui est propre.
Suivant une autre variante de réalisation, les moyens de gestion de l'affichage 12 sont adaptés pour afficher sur l'ensemble des écrans des utilisateurs du réseau le même module fonctionnel mis au tapis, ce module fonctionnel étant le dernier module fonctionnel mis au tapis choisi par l'un des utilisateurs.
On comprend que la possibilité de mettre au tapis et donc de maintenir en permanence en forme d'écran l'un des modules fonctionnels, indépendamment des changements d'espace de travail permet à un utilisateur de conserver une même vue présente à l'écran quelque soit l'espace de travail, facilitant ainsi la gestion de l'affichage par l'utilisateur qui n'a à prendre en compte que les changements d'espace de travail, sans se préoccuper de l'application mise en fond d'écran pour chacun des espaces de travail.