Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3151 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  10  11  12  ..  24  25  26  27  28  29
Auteur Sujet :

[Topic unique] Eclipse - 3.1 final out ! - WebToolsProject 1.0M5

n°787331
nraynaud
lol
Posté le 05-07-2004 à 20:52:02  profilanswer
 

Reprise du message précédent :

gfive a écrit :

euh, dans ..eclipse/workspace/.metadata/.log, non?

yapa chez moi.
 
Il est maichant, j'arrive pas à intégrer subclipse, mais j'ai pas de message d'erreur !!!

mood
Publicité
Posté le 05-07-2004 à 20:52:02  profilanswer
 

n°787606
benou
Posté le 06-07-2004 à 08:48:17  profilanswer
 

the real moins moins a écrit :

et genre il le redemarre à chaque fois et tout? mais que c'est laid :o


tu les debug comment toi tes sites ?  [:mlc2]

n°787692
the real m​oins moins
Posté le 06-07-2004 à 10:04:32  profilanswer
 

ben mon tomcat tourne en permanence [:spamafote]
je le redemarre de temps en temps mais en command line quoi [:spamafote]
 
et puis bon, débugger, c'est uniquement grâce à ce cher jetspeed sinon y'aurait pas besoin :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°787846
benou
Posté le 06-07-2004 à 11:15:17  profilanswer
 

t'as jamais utiliser un debugueur avec un site web ?  [:mlc2]  
essaye, ca vaut vraiment le coup !
 
 
y a juste que le rechargement des classes compilées à la volées marche pas bien sur mon poste ... ca a déjà marché, mais je sais ni comment ni pourquoi ni qu'est ce que j'avais bien pu modifier pour que ca marche. Mais là c'était le bonheur : les servlets et autres classes rechargées à la volée (sans redémarrer tout le context)  :love:


---------------
ma vie, mon oeuvre - HomePlayer
n°787885
the real m​oins moins
Posté le 06-07-2004 à 11:39:42  profilanswer
 

benou a écrit :

t'as jamais utiliser un debugueur avec un site web ?

j'ai dit ça? [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°787972
benou
Posté le 06-07-2004 à 13:02:29  profilanswer
 


c'est ce que tu laissais entendre  :)  
enfin que j'ai compris  :sweat:  
 
c'était quoi que tu disais sinon ?  :whistle:


---------------
ma vie, mon oeuvre - HomePlayer
n°788007
the real m​oins moins
Posté le 06-07-2004 à 13:37:06  profilanswer
 

que si j'avais pas de con de jetspeed à débugger, j'aurais pas vraiment besoin de debugger, du moins pas aussi souvent.
test first et tout ça, jamais entendu parler monsieur benou je suppose? tu dois en etre l'ère de test-o-click ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°788008
gfive
Posté le 06-07-2004 à 13:39:09  profilanswer
 

nraynaud a écrit :

yapa chez moi.
 
Il est maichant, j'arrive pas à intégrer subclipse, mais j'ai pas de message d'erreur !!!


 
Mefies toi : ici, on a testé (pas moi) subclipse, et il paraît que c'est ue bouse.
Maintennt, c'est pas une flèche qui l'a testé, non plus, mais bon.

n°788009
gfive
Posté le 06-07-2004 à 13:41:32  profilanswer
 

benou a écrit :

t'as jamais utiliser un debugueur avec un site web ?  [:mlc2]  
essaye, ca vaut vraiment le coup !


 
Tiens, c'est marrant...Notre site, à l'époque (chat.orange.fr) on le débuggais entièrement à la main! :D:D  
 
Avec les traces d'exceptions directement dans le err.log de JServ..
 
C'te bande de barbares! :D

n°788011
aurel
Fraggueur en liberté
Posté le 06-07-2004 à 13:42:45  profilanswer
 

bon en gros :
comment je fais pour débugguer via Eclipse un truc lancé avec catalina ? :o
merci

mood
Publicité
Posté le 06-07-2004 à 13:42:45  profilanswer
 

n°788016
nraynaud
lol
Posté le 06-07-2004 à 13:44:13  profilanswer
 

gfive a écrit :

Mefies toi : ici, on a testé (pas moi) subclipse, et il paraît que c'est ue bouse.
Maintennt, c'est pas une flèche qui l'a testé, non plus, mais bon.

perso, je l'utilise depuis quelques temps et j'en suis aussi satisfait que possible.
 
J'ai pas précisé, mais en fait le pb était que j'ai fait passer la copie de travail de Mac os X à windows et elle a pas été reconnue comme copie de travail. J'ai fait un checkout et je vais intégrer les modifs à la main.

n°788018
the real m​oins moins
Posté le 06-07-2004 à 13:46:59  profilanswer
 

aurel a écrit :

bon en gros :
comment je fais pour débugguer via Eclipse un truc lancé avec catalina ? :o
merci

le monsieur te dit de configurer ton tomcat pourqu'il demmarre avec JPDA d'enablé et de connecter ton debugger dessus en remote :o
 
 
 
(avec idea, on crée un profil de débug et il donne les options qui vont bien a foutre dans le script de demarrage [:itm])


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°788019
gfive
Posté le 06-07-2004 à 13:47:37  profilanswer
 

nraynaud a écrit :

perso, je l'utilise depuis quelques temps et j'en suis aussi satisfait que possible.


 
Ah, bah alors il faudra que je la réessaie, alors.

n°788121
Jubijub
Parce que je le VD bien
Posté le 06-07-2004 à 15:08:51  profilanswer
 

gfive a écrit :

Mefies toi : ici, on a testé (pas moi) subclipse, et il paraît que c'est ue bouse.
Maintennt, c'est pas une flèche qui l'a testé, non plus, mais bon.


 
je bosse avec tous les jours, moi aussi j'en suis super content...le tout c'est qu'il faut bien faire gaffe de passer par eclipse pour tt ce qui est management (refactoring, ajout, suppression, renommage, déplacement, copie, etc...) pour que Subclipse fasse l'update de la working copie...sinon ca crashe, mais bon, ca fait partie du fonctionnement de subversion, et c pas plus con qu'autre chose, faut juste s'y habituer...
 
la version 0.9.7 vient de sortir, elle corrige 2-3 bugs...si vous voulez tester, virer l'ancienne version, l'update est dans les choux (il voit pas la maj), et réinstaller la nouvelle n'écrase pas l'ancienne...g du tout virer à la main (plugin + feature) et réinstaller...et hop...
 
je suis très content de subversion, ca me permet de tenir une trace de ce que je fais...
 
D'ailleurs nraynaud, tu connais un moyen de récupérer dans un fichier texte tt les commentaires des commits entre 2 versions données ? (ce serait pour faire un changelog)


---------------
Jubi Photos : Flickr - 500px
n°788140
lorill
Posté le 06-07-2004 à 15:24:03  profilanswer
 

Jubijub a écrit :


D'ailleurs nraynaud, tu connais un moyen de récupérer dans un fichier texte tt les commentaires des commits entre 2 versions données ? (ce serait pour faire un changelog)


je m'apelle pas nraynaud, alors je réponds pas [:mmmfff]
 
 
 
 
 
 

Spoiler :

svn log
et si tu veux, y'a un script perl qui traine pour transformer le log svn en changelog classique

n°788143
nraynaud
lol
Posté le 06-07-2004 à 15:25:10  profilanswer
 

on dirait qu'il n'existe pas de commande automatique pour ça.

n°788144
lorill
Posté le 06-07-2004 à 15:25:47  profilanswer
 

nraynaud a écrit :

on dirait qu'il n'existe pas de commande automatique pour ça.


ben si  :sweat:

n°788155
nraynaud
lol
Posté le 06-07-2004 à 15:34:45  profilanswer
 

ouais, un script perl externe ....

n°788164
lorill
Posté le 06-07-2004 à 15:42:07  profilanswer
 

nraynaud a écrit :

ouais, un script perl externe ....

ben si tu veux un format changelog, si tu veux juste l'info et que tu t'en tapes de la forme, svn log

n°788166
noldor
Rockn'roll
Posté le 06-07-2004 à 15:42:49  profilanswer
 

Concernant Eclipse 3.0, on peut faire un upgrade à partir de la version 2.1 ?
comment ça se passe pour récupérer les projets créés avec une version antérieure ?


Message édité par noldor le 06-07-2004 à 15:42:57

---------------
http://runnerstats.net
n°788176
gizmo
Posté le 06-07-2004 à 15:48:29  profilanswer
 

Dîtes, depuis la 3.0RC2, on a un problème avec les junit plug-in test. Ils n'appellent plus leurs dépendances, ce qui est assez gênant vu qu'ils sont dépendants de test antérieurs.
 
Quelqu'un a-t-il déjà eu ce problème et a-t-il trouvé une solution?

n°788350
Jubijub
Parce que je le VD bien
Posté le 06-07-2004 à 17:40:00  profilanswer
 

-->svn log tout ce qu'il me fait c m'écrire la date de création de la working copy...même si je me met dans /src...
 
-->noldor : je te conseille de poutrer la V2 et de mettre une v3 proprement...tes projets, tu peux les importer via une commande import


---------------
Jubi Photos : Flickr - 500px
n°788358
noldor
Rockn'roll
Posté le 06-07-2004 à 17:42:08  profilanswer
 

Jubijub a écrit :

-->svn log tout ce qu'il me fait c m'écrire la date de création de la working copy...même si je me met dans /src...
 
-->noldor : je te conseille de poutrer la V2 et de mettre une v3 proprement...tes projets, tu peux les importer via une commande import

ok, merci :jap , je vais faire comme ça :D


---------------
http://runnerstats.net
n°788362
Jubijub
Parce que je le VD bien
Posté le 06-07-2004 à 17:45:08  profilanswer
 

hum, bizarre le forum, je peux pas éditer...
 
--> en fait pour svn faut faire le svn log sur le repository...ca me crache tout, c superbe...
 
--> autre pb : mes entrées sont en no author...ca viendrait pas du fait que je suis en anonyme sur mon svn:// ?


---------------
Jubi Photos : Flickr - 500px
n°788370
lorill
Posté le 06-07-2004 à 17:51:52  profilanswer
 

Jubijub a écrit :


--> en fait pour svn faut faire le svn log sur le repository...ca me crache tout, c superbe...


la doc, tu connais ?
ou au moins, un petit svn help ?
 

Citation :


 
vincent@laptop:~/work/lucane/trunk$ svn help log
log: Show the log messages for a set of revision(s) and/or file(s).
usage: 1. log [PATH]
       2. log URL [PATH...]
 
  1. Print the log messages for a local PATH (default: '.').
     The default revision range is BASE:1.
 
  2. Print the log messages for the PATHs (default: '.') under URL.
     The default revision range is HEAD:1.
 
  With -v, also print all affected paths with each log message.
  With -q, don't print the log message body itself (note that this is
  compatible with -v).
 
  Each log message is printed just once, even if more than one of the
  affected paths for that revision were explicitly requested.  Logs
  follow copy history by default.  Use --stop-on-copy to disable this
  behavior, which can be useful for determining branchpoints.
 
  Examples:
    svn log
    svn log foo.c
    svn log http://www.example.com/repo/project/foo.c
    svn log http://www.example.com/repo/project foo.c bar.c
 
Valid options:
  -r [--revision] arg      : ARG (some commands also take ARG1:ARG2 range)
                             A revision argument can be one of:
                                NUMBER       revision number
                                "{" DATE "}" revision at start of the date
                                "HEAD"       latest in repository
                                "BASE"       base rev of item's working copy
                                "COMMITTED"  last commit at or before BASE
                                "PREV"       revision just before COMMITTED

  -q [--quiet]             : print as little as possible
  -v [--verbose]           : print extra information
  --targets arg            : pass contents of file ARG as additional args
  --stop-on-copy           : do not cross copies while traversing history
  --incremental            : give output suitable for concatenation
  --xml                    : output in XML
  --username arg           : specify a username ARG
  --password arg           : specify a password ARG
  --no-auth-cache          : do not cache authentication tokens
  --non-interactive        : do no interactive prompting
  --config-dir arg         : read user configuration files from directory ARG

n°788463
Jubijub
Parce que je le VD bien
Posté le 06-07-2004 à 19:28:59  profilanswer
 

[:cupra]  
 
j'ai regardé qu'après


---------------
Jubi Photos : Flickr - 500px
n°788617
benou
Posté le 07-07-2004 à 00:00:01  profilanswer
 

the real moins moins a écrit :


test first et tout ça, jamais entendu parler monsieur benou je suppose? tu dois en etre l'ère de test-o-click ?


je dois le prendre comment ca ?


---------------
ma vie, mon oeuvre - HomePlayer
n°788622
the real m​oins moins
Posté le 07-07-2004 à 00:01:49  profilanswer
 

comme tu veux; c'est marrant j'ai failli revenir là-dessus quand je viens de lire que t'étais encore au taf à une heure pareille [:itm]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°788631
Jubijub
Parce que je le VD bien
Posté le 07-07-2004 à 00:08:40  profilanswer
 

en tt cas j'ai du mal avec un server svn avec authentification...impossible de commit quoi que ce soit, y me dit "user dialog canceled"...
 
J'ai d'ailleurs découvert que dans la SVN repository perspective, on peut foutre absolument n'importe quoi comme login/pass, y s'en branle il affiche le repository sans rien dire
 
faudra que je reteste demain...mais je pense que c vraiment ca qui fait que mon checkin sont anonymes...
 
De tt façon je suis le seul user qui bosse sur ce truc, donc c vraiment histoire d'apprendre :p


---------------
Jubi Photos : Flickr - 500px
n°788682
nraynaud
lol
Posté le 07-07-2004 à 01:58:13  profilanswer
 

non, la lecture des repositories est en HTTP. C'est les opérations de modification qui sont en webdav.

n°788733
Jubijub
Parce que je le VD bien
Posté le 07-07-2004 à 08:52:54  profilanswer
 

même avec le server built-in svnserve ??? je parle pas du modules Apache on est bien d'accord ?
 
-->je le mettrais, mais chez moi, et plus tard (y'a installer linux sur ma station et sur mon server d'abord...), toujours pour apprendre...


---------------
Jubi Photos : Flickr - 500px
n°788769
Jubijub
Parce que je le VD bien
Posté le 07-07-2004 à 09:54:57  profilanswer
 

Argh !!!!
 
Bug incompréhensible :  
 
J'ai monté mon server svn, qui marchait très bien en anonymous.
G mis l'authentification (en gros tu décommentes 3 lignes dans le fichier de conf, et du crée un fichier bidon qui contient les login//pass)
 
Dans rapidsvn, je peux checkout, commit, aucun soucis...
Dans Subclipse, il me checkout à moitié : 2-3 rep, 2-3 fichiers à la racine du projet, et bam, erreur "cannot checkout" sans rien....et le log d'eclipse dit rien de plus...
 
Edit : après investigation c encore plus bizarre :  
- checking out as projet fonctionne
- checking out as... / java project plante
 
Le plus fort étant que le checking out as projet me le crée cash en projet java, avec un nom que j'ai jamais spécifié (je suppose que c une résurgence du fichier .metadate)...c très spécial


Message édité par Jubijub le 07-07-2004 à 10:01:10

---------------
Jubi Photos : Flickr - 500px
n°788770
gizmo
Posté le 07-07-2004 à 09:55:29  profilanswer
 

gizmo a écrit :

Dîtes, depuis la 3.0RC2, on a un problème avec les junit plug-in test. Ils n'appellent plus leurs dépendances, ce qui est assez gênant vu qu'ils sont dépendants de test antérieurs.
 
Quelqu'un a-t-il déjà eu ce problème et a-t-il trouvé une solution?

:bounce:

n°788773
Jubijub
Parce que je le VD bien
Posté le 07-07-2004 à 10:01:33  profilanswer
 

désolé je sais pas utiliser les tests unitaires :(


---------------
Jubi Photos : Flickr - 500px
n°792468
nraynaud
lol
Posté le 10-07-2004 à 14:12:26  profilanswer
 

je suis le seul pour qui eclipse ne trouve pas le code source des classes internes sous windows ? Il arrive pas à déduire que le fichier source est celui de la classe englobante on dirait. Et c'est déjà chiant pour la navigation, mais pour un "step into" c'est carrément rédibitoire.

n°792478
Jubijub
Parce que je le VD bien
Posté le 10-07-2004 à 14:38:27  profilanswer
 

je vois pas de quoi tu parles...
 
donne un exemple pour reproduire le truc stp....


---------------
Jubi Photos : Flickr - 500px
n°792500
nraynaud
lol
Posté le 10-07-2004 à 15:12:35  profilanswer
 

taper ça dans un fichier :

Code :
  1. private final Highlighter.HighlightPainter painter = new DefaultHighlighter.DefaultHighlightPainter(
  2.             Color.YELLOW);


mettre tout bien autour pour que ça compile etc.
 
faire ctrl+clic sur "Highlighter", ça doit aller sur la source, sinon, filer la source à eclipse. Ce truc doit fonctionner normalement.
 
faire ctrl+clic sur "DefaultHighlightPainter" et là c'est le drame !

n°792769
xav14
Posté le 11-07-2004 à 00:46:55  profilanswer
 

le constructeur d'une classe interne doit s'instancier sur un objet de la classe englobante :heink:
a moins que DefaultHilighter soit une varaible :heink:
enfin bon, c'est surement pas ce code là que t'essayes de compiler :o


Message édité par xav14 le 11-07-2004 à 00:47:08
n°792775
nraynaud
lol
Posté le 11-07-2004 à 01:23:41  profilanswer
 

xav14 a écrit :

le constructeur d'une classe interne doit s'instancier sur un objet de la classe englobante :heink:
a moins que DefaultHilighter soit une varaible :heink:
enfin bon, c'est surement pas ce code là que t'essayes de compiler :o

Code :
  1. /*
  2. * Created on 7 juil. 2004
  3. *
  4. * TODO To change the template for this generated file go to
  5. * Window - Preferences - Java - Code Style - Code Templates
  6. */
  7. package jcoincoin.gui;
  8. import java.awt.Color;
  9. import java.awt.Cursor;
  10. import java.awt.GridLayout;
  11. import java.awt.Point;
  12. import java.awt.event.MouseAdapter;
  13. import java.awt.event.MouseEvent;
  14. import java.awt.event.MouseMotionListener;
  15. import java.net.MalformedURLException;
  16. import java.net.URL;
  17. import java.util.HashMap;
  18. import java.util.Map;
  19. import javax.swing.ImageIcon;
  20. import javax.swing.JButton;
  21. import javax.swing.JFrame;
  22. import javax.swing.JScrollPane;
  23. import javax.swing.JTextPane;
  24. import javax.swing.SwingUtilities;
  25. import javax.swing.event.EventListenerList;
  26. import javax.swing.text.AttributeSet;
  27. import javax.swing.text.BadLocationException;
  28. import javax.swing.text.DefaultHighlighter;
  29. import javax.swing.text.DefaultStyledDocument;
  30. import javax.swing.text.Element;
  31. import javax.swing.text.Highlighter;
  32. import javax.swing.text.SimpleAttributeSet;
  33. import javax.swing.text.Style;
  34. import javax.swing.text.StyleConstants;
  35. import javax.swing.text.StyledDocument;
  36. import jcoincoin.Clock;
  37. import jcoincoin.ClockReference;
  38. import jcoincoin.InputMessage;
  39. import jcoincoin.Tribune;
  40. import jcoincoin.TribuneListener;
  41. import jcoincoin.messages.Decoration;
  42. import jcoincoin.messages.DecorationHandler;
  43. import jcoincoin.messages.decoration.BoldDecoration;
  44. import jcoincoin.messages.decoration.ClockDecoration;
  45. import jcoincoin.messages.decoration.ItalicDecoration;
  46. import jcoincoin.messages.decoration.SmileyDecoration;
  47. import jcoincoin.utils.CircularArray;
  48. import jcoincoin.utils.ElementTreePanel;
  49. /**
  50. *  
  51. *  
  52. * @author nraynaud
  53. *   
  54. */
  55. public class NewTribuneGUI {
  56.     private static final String CLOCK_REF = "clockRef";
  57.     private static final String CLOCK = "clock";
  58.     private static final String UA = "user_agent";
  59.     private static final String MOUSE_LISTENER = "mouse_Listener";
  60.     private static final Cursor DefaultCursor = Cursor
  61.             .getPredefinedCursor(Cursor.DEFAULT_CURSOR);
  62.     private static final Cursor HandCursor = Cursor
  63.             .getPredefinedCursor(Cursor.HAND_CURSOR);
  64.     private JFrame frame;
  65.     private JTextPane textpane;
  66.     private CircularArray postData;
  67.     private final Tribune tribune;
  68.     private DecorationTransformer decorator = new DecorationTransformer();
  69.     private final TribuneMouseListener mouseLister = new TribuneMouseListener();
  70.     private final EventListenerList listeners = new EventListenerList();
  71.     /**
  72.      * represents the number of chars written so far in this document, including
  73.      * those that where removed.
  74.      */
  75.     private int absoluteIndex = 0;
  76.     private int absoluteDocumentStart = 0;
  77.     private final Map messageToData = new HashMap();
  78.     private final HighlightManager highlightManager = new HighlightManager();
  79.     /**
  80.      *   
  81.      */
  82.     public NewTribuneGUI(final Tribune tribune) {
  83.         super();
  84.         this.tribune = tribune;
  85.         postData = new CircularArray(2000, new CircularArray.RemoveListener() {
  86.             public void removed(Object o) {
  87.                 removeMessage((MessagePosition) o);
  88.             }
  89.         });
  90.         tribune.addListener(tribuneListener);
  91.         this.addClockClickListener(new ClockClickListener() {
  92.             public void onClick(NewTribuneGUI gui, Clock clock) {
  93.                 System.out.println(clock);
  94.             }
  95.         });
  96.     }
  97.     public JFrame getFrame() {
  98.         frame = new JFrame(tribune.getName());
  99.         frame.getContentPane().setLayout(new GridLayout(1, 2));
  100.         final DefaultStyledDocument document = new DefaultStyledDocument();
  101.         initialiseStyles(document);
  102.         textpane = new JTextPane(document);
  103.         textpane.setEditable(false);
  104.         textpane.addMouseListener(mouseLister);
  105.         textpane.addMouseMotionListener(mouseLister);
  106.         frame.getContentPane().add(new JScrollPane(textpane), 0);
  107.         frame.getContentPane().add(
  108.                 new JScrollPane(new ElementTreePanel(textpane)), 1);
  109.         return frame;
  110.     }
  111.     private void appendString(String s, String style) {
  112.         final StyledDocument document = textpane.getStyledDocument();
  113.         appendString(s, document.getStyle(style));
  114.     }
  115.     private void appendString(String s, AttributeSet style) {
  116.         final StyledDocument document = textpane.getStyledDocument();
  117.         try {
  118.             document.insertString(document.getLength(), s, style);
  119.         } catch (BadLocationException e) {
  120.             throw new IllegalStateException("unexpected BadLocationException" );
  121.         }
  122.     }
  123.     private synchronized void appendMessage(final InputMessage message) {
  124.         SwingUtilities.invokeLater(new Runnable() {
  125.             public void run() {
  126.                 highlightManager.passivateRef();
  127.                 final StyledDocument document = textpane.getStyledDocument();
  128.                 final int start = document.getLength();
  129.                 final SimpleAttributeSet clockSet = new SimpleAttributeSet(
  130.                         document.getStyle(CLOCK));
  131.                 clockSet.addAttribute(CLOCK, message.getClock());
  132.                 clockSet.addAttribute(UA, message.getUserAgent());
  133.                 appendString(message.getTimeString(), clockSet);
  134.                 appendString(" ", "global" );
  135.                 appendString(message.getLogin(), "login" );
  136.                 appendString(" ", "global" );
  137.                 final int messageStart = document.getLength();
  138.                 appendString(message.getText(), "global" );
  139.                 decorator.setStart(messageStart);
  140.                 message.getMessage().getToplevelDecoration().iterateOn(
  141.                         decorator);
  142.                 final int postLen = document.getLength() - start;
  143.                 MessagePosition entry = new MessagePosition(start, postLen,
  144.                         message);
  145.                 postData.add(entry);
  146.                 messageToData.put(message, entry);
  147.                 absoluteIndex += postLen;
  148.             }
  149.         });
  150.     }
  151.     private synchronized void removeMessage(final MessagePosition entry) {
  152.         SwingUtilities.invokeLater(new Runnable() {
  153.             public void run() {
  154.                 messageToData.remove(entry.message);
  155.                 final StyledDocument document = textpane.getStyledDocument();
  156.                 try {
  157.                     document.remove(0, entry.getLength());
  158.                     absoluteDocumentStart += entry.getLength();
  159.                 } catch (BadLocationException e) {
  160.                     throw new IllegalStateException(
  161.                             "unexpected BadLocationException" );
  162.                 }
  163.             }
  164.         });
  165.     }
  166.     public void addClockClickListener(ClockClickListener listener) {
  167.         listeners.add(ClockClickListener.class, listener);
  168.     }
  169.     public void removeClockClickListener(ClockClickListener listener) {
  170.         listeners.remove(ClockClickListener.class, listener);
  171.     }
  172.     void fireClockClickEvent(Clock clock) {
  173.         Object[] listeners = this.listeners.getListenerList();
  174.         for (int i = listeners.length - 2; i >= 0; i -= 2) {
  175.             if (listeners[i] == ClockClickListener.class) {
  176.                 ((ClockClickListener) listeners[i + 1]).onClick(this, clock);
  177.             }
  178.         }
  179.     }
  180.     private final TribuneListener tribuneListener = new TribuneListener() {
  181.         public void newPostArrived(InputMessage message, Tribune origin) {
  182.             appendMessage(message);
  183.         }
  184.         public void oldPostArrived(InputMessage message, Tribune origin) {
  185.             appendMessage(message);
  186.         }
  187.     };
  188.     private void initialiseStyles(StyledDocument document) {
  189.         Style global = document.addStyle("global", null);
  190.         Style s = document.addStyle(CLOCK, global);
  191.         StyleConstants.setForeground(s, Color.BLUE);
  192.         s = document.addStyle("clockRef", global);
  193.         StyleConstants.setForeground(s, Color.BLUE);
  194.         StyleConstants.setUnderline(s, true);
  195.         s = document.addStyle("bold", global);
  196.         StyleConstants.setBold(s, true);
  197.         s = document.addStyle("italic", global);
  198.         StyleConstants.setItalic(s, true);
  199.         s = document.addStyle("login", global);
  200.         StyleConstants.setForeground(s, Color.RED);
  201.     }
  202.     /**
  203.      * add style to the message starting at the given location according to the
  204.      * structure of the decoration that calls it.
  205.      *  
  206.      * @author nraynaud
  207.      *   
  208.      */
  209.     private final class DecorationTransformer implements DecorationHandler {
  210.         private int start = 0;
  211.         private AttributeSet styleForDecoration(Decoration deco) {
  212.             final StyledDocument document = textpane.getStyledDocument();
  213.             if (deco instanceof BoldDecoration)
  214.                 return document.getStyle("bold" );
  215.             if (deco instanceof ItalicDecoration)
  216.                 return document.getStyle("italic" );
  217.             if (deco instanceof ClockDecoration) {
  218.                 SimpleAttributeSet set = new SimpleAttributeSet(document
  219.                         .getStyle(CLOCK_REF));
  220.                 set.addAttribute(CLOCK_REF, ((ClockDecoration) deco)
  221.                         .getClockRef());
  222.                 set.addAttribute(MOUSE_LISTENER, clockRefListener);
  223.                 return set;
  224.             }
  225.             if (deco instanceof SmileyDecoration) {
  226.                 SimpleAttributeSet set = new SimpleAttributeSet();
  227.                 SmileyDecoration d = (SmileyDecoration) deco;
  228.                 try {
  229.                     StyleConstants.setIcon(set, new ImageIcon(new URL(d
  230.                             .getUrl()), d.getSmiley()));
  231.                 } catch (MalformedURLException e) {
  232.                     return null;
  233.                 }
  234.                 return set;
  235.             }
  236.             return null;
  237.         }
  238.         public void endDecoration(Decoration deco) {
  239.             final StyledDocument document = textpane.getStyledDocument();
  240.             AttributeSet set = styleForDecoration(deco);
  241.             if (set != null)
  242.                 document.setCharacterAttributes(start, deco.getLength(), set,
  243.                         true);
  244.             start -= deco.getStart();
  245.         }
  246.         public void startDecoration(Decoration deco) {
  247.             start += deco.getStart();
  248.         }
  249.         private void setStart(int start) {
  250.             this.start = start;
  251.         }
  252.     }
  253.     /**
  254.      * represents the position of a message in the document of this visual
  255.      * component.
  256.      *  
  257.      * the position is always acurate at the moment where you fetch it,
  258.      * whaterver number of messages where deleted in the document since the
  259.      * creation of the position.
  260.      *  
  261.      *  
  262.      * @author nraynaud
  263.      *   
  264.      */
  265.     private final class MessagePosition {
  266.         private final int absoluteStart;
  267.         private final int length;
  268.         private final InputMessage message;
  269.         /**
  270.          * @param absoluteIndex
  271.          * @param lenght
  272.          * @param message
  273.          */
  274.         public MessagePosition(final int start, final int lenght,
  275.                 final InputMessage message) {
  276.             assert SwingUtilities.isEventDispatchThread();
  277.             if (start < 0 || lenght < 0)
  278.                 throw new IllegalArgumentException(
  279.                         "parameters should be positive" );
  280.             this.absoluteStart = start + absoluteDocumentStart;
  281.             this.length = lenght;
  282.             this.message = message;
  283.         }
  284.         /**
  285.          * @return Returns the lenght.
  286.          */
  287.         public int getLength() {
  288.             return length;
  289.         }
  290.         /**
  291.          * @return Returns the message.
  292.          */
  293.         public InputMessage getMessage() {
  294.             return message;
  295.         }
  296.         /**
  297.          * The start index of the post.
  298.          *  
  299.          * @return the start index of the post.
  300.          */
  301.         public int getStart() {
  302.             return absoluteStart - absoluteDocumentStart;
  303.         }
  304.         public int getEnd() {
  305.             return getStart() + getLength();
  306.         }
  307.     }
  308.     private final class TribuneMouseListener extends MouseAdapter implements
  309.             MouseMotionListener {
  310.         private final Point point = new Point();
  311.         private Element currentElement = null;
  312.         private MouseElementListener currentElementListener = null;
  313.         private AttributeSet attributeSetForEvent(MouseEvent e) {
  314.             return elementForEvent(e).getAttributes();
  315.         }
  316.         private Element elementForEvent(MouseEvent e) {
  317.             // avoid instantiating a point in this code
  318.             point.x = e.getX();
  319.             point.y = e.getY();
  320.             int pos = textpane.getUI().viewToModel(textpane, point);
  321.             Element element = textpane.getStyledDocument().getCharacterElement(
  322.                     pos);
  323.             return element;
  324.         }
  325.         public void mouseClicked(MouseEvent e) {
  326.             AttributeSet set = attributeSetForEvent(e);
  327.             Object o = set.getAttribute(CLOCK);
  328.             if (o != null) {
  329.                 fireClockClickEvent((Clock) o);
  330.             }
  331.         }
  332.         /**
  333.          * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
  334.          */
  335.         public void mouseDragged(MouseEvent e) {
  336.         }
  337.         /**
  338.          * manage the current element, and forwards enter/exit events.
  339.          */
  340.         public void mouseMoved(MouseEvent e) {
  341.             assert e.getSource() == textpane;
  342.             Element element = elementForEvent(e);
  343.             if (element == currentElement)
  344.                 return;
  345.             if (currentElementListener != null)
  346.                 currentElementListener.mouseExited(e, currentElement);
  347.             currentElement = element;
  348.             MouseElementListener listener = (MouseElementListener) element
  349.                     .getAttributes().getAttribute(MOUSE_LISTENER);
  350.             currentElementListener = listener;
  351.             if (listener != null)
  352.                 listener.mouseEntered(e, element);
  353.         }
  354.         public void mouseExited(MouseEvent e) {
  355.             if (currentElement == null)
  356.                 return;
  357.             if (currentElementListener != null)
  358.                 currentElementListener.mouseExited(e, currentElement);
  359.             currentElement = null;
  360.             currentElementListener = null;
  361.         }
  362.     }
  363.     /**
  364.      * manages posts highlighting
  365.      *  
  366.      *  
  367.      * @author nraynaud
  368.      *   
  369.      */
  370.     private class HighlightManager {
  371.         private final Highlighter.HighlightPainter painter = new DefaultHighlighter.DefaultHighlightPainter(
  372.                 Color.YELLOW);
  373.         private ClockReference currentReference = null;
  374.         private Object currentReferenceTag;
  375.         public void activateRef(ClockReference reference) {
  376.             assert SwingUtilities.isEventDispatchThread();
  377.             if (currentReference != reference) {
  378.                 passivateRef();
  379.                 currentReference = reference;
  380.                 InputMessage message = reference.dereference();
  381.                 if (message != null) {
  382.                     MessagePosition entry = (MessagePosition) messageToData
  383.                             .get(message);
  384.                     if (entry != null) {
  385.                         Highlighter highlighter = textpane.getHighlighter();
  386.                         try {
  387.                             currentReferenceTag = highlighter.addHighlight(
  388.                                     entry.getStart(), entry.getEnd(), painter);
  389.                         } catch (BadLocationException e) {
  390.                             throw new RuntimeException(e);
  391.                         }
  392.                     }
  393.                 }
  394.             }
  395.         }
  396.         public void passivateRef() {
  397.             assert SwingUtilities.isEventDispatchThread();
  398.             if (currentReference != null) {
  399.                 if (currentReferenceTag != null)
  400.                     textpane.getHighlighter().removeHighlight(
  401.                             currentReferenceTag);
  402.                 currentReference = null;
  403.             }
  404.         }
  405.     }
  406.     /**
  407.      * Listeners interested in text element mouse interraction should extend
  408.      * this class.
  409.      *  
  410.      * @author nraynaud
  411.      *   
  412.      */
  413.     public abstract class MouseElementListener {
  414.         public void mouseEntered(MouseEvent event, Element element) {
  415.         }
  416.         public void mouseExited(MouseEvent event, Element element) {
  417.         }
  418.         public void mouseClicked(MouseEvent event, Element element) {
  419.         }
  420.     }
  421.     private final MouseElementListener clockRefListener = new MouseElementListener() {
  422.         public void mouseEntered(MouseEvent event, Element element) {
  423.             AttributeSet att = element.getAttributes();
  424.             ClockReference ref = (ClockReference) att.getAttribute(CLOCK_REF);
  425.             if (ref != null) {
  426.                 textpane.setCursor(HandCursor);
  427.                 highlightManager.activateRef(ref);
  428.             }
  429.         }
  430.         public void mouseExited(MouseEvent event, Element element) {
  431.             textpane.setCursor(DefaultCursor);
  432.             highlightManager.passivateRef();
  433.         }
  434.     };
  435. }


 
 
tiens, c'est mon code qui compile (chez moi biensûr, je suis le seul à avoir les classes qui vont autour).
 
quand je marque que c'est à vous de mettre le code qui va bien autour, c'est pas pour rien, il y a une classe et 2 import minimum à mettre.
 
Sauf qu'on s'en fout de la compilation, je parle de naviguer dans le code source !

n°792839
xav14
Posté le 11-07-2004 à 10:26:11  profilanswer
 

nraynaud a écrit :


tiens, c'est mon code qui compile (chez moi biensûr, je suis le seul à avoir les classes qui vont autour).
 
quand je marque que c'est à vous de mettre le code qui va bien autour, c'est pas pour rien, il y a une classe et 2 import minimum à mettre.
 
Sauf qu'on s'en fout de la compilation, je parle de naviguer dans le code source !


 
ola, je me suis pas fait comprendre :D
j'ai tout bien compris ce que tu voulais, mais comme je comprenais pas ta ligne de cod, surtout le DefaultHighlighter.DefaultHighlightPainter(), je demandais un poil d'explication la dessus.
je suis pas un dieu en java donc quand ya un truc qui je comprend pas, je demande :D


Message édité par xav14 le 11-07-2004 à 10:26:33
n°792942
nraynaud
lol
Posté le 11-07-2004 à 13:32:35  profilanswer
 

donc, oui, il faut embarquer l'instance dans une autre.
 
Une classe annonyme est forcément "inner" si elle est déclarée dans le contexte d'une instance (et forcément simplement "nested" sinon, mais on peut pas la forcer à être simplement "nested" dans un contexte d'instance, il faut lui donner un nom pour avoir le choix des mot clefs).


Message édité par nraynaud le 11-07-2004 à 13:32:57
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  10  11  12  ..  24  25  26  27  28  29

Aller à :
Ajouter une réponse
 

Sujets relatifs
[eclipse] [popup] pb d'affichage d'une fenetre?Eclipse - LOMBOZ
HFR Prog rencontre 2004 : the final looseclé unique pour identifier un fichier
[Eclipse] Plusieurs lignes de tabs dans l'IDE ?Eclipse + Profiler install pb
problème avec EclipseUtilisation de Visual Editor (VE) dans Eclipse
Displays the percentage of unique visitors that have the .NET CLRPlugin Eclipse - Quelqu'un connait Lomboz ?
Plus de sujets relatifs à : [Topic unique] Eclipse - 3.1 final out ! - WebToolsProject 1.0M5


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)