![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.161
|
Hi Leute. Ausnahmsweise brauche ich mal ein paar helle Köpfe, die mir ein wenig auf die Sprünge helfen. Wahrscheinlich kennt ihr NetBeans oder IDEA. Beide bieten rechts neben der Scrollbar der Textarea einen Bereich mit Strichen an. Klar? Gut. Genau das programmiere ich gerade für mein SimpleEdit. Ist soweit auch schon fertig und funktioniert einwandfrei. Um das ganze zu realisieren habe ich ein Interface "CodeInspector" entworfen, dass immer genau einen weiteren CodeInspector bekommt und den auszuführen hat, wenn es fertig ist und dieser zweite CodeInspector != null ist. Wie gesagt: No problem so far. Jetzt wird es aber komplizierter: Je mehr Code und CodeInspectoren und je komplexer deren "inspection", desto länger dauert der ganze Scheiß. Ok, threading - kein Problem, oder doch? Japp, ist ein Problem. Ich brauche vollen Zugriff zum Model (d.h. dem Document), damit ich die "LineMarker" erstellen kann (zeichnen in der Textarea im Hintergrund rum und werden rechts von der Scrollbar angezeigt). Wenn ich das ganze in einem anderen Thread ablaufen lasse führt das zwangsläufig zu Problemen (bei meinem Text wurden Marker plötzlich vervielfältigt und nicht mehr entfernt). Das passiert deshalb, weil während der Erzeugung einer "LinePosition" (vgl. javax.swing.text.Position - nur für Zeilen), die für den "LineMarker" notwendig ist, problemlos eine neue Zeile hinzugefügt werden könnte. Die CodeInspectoren werden übrigens immer dann ausgeführt, wenn eine bestimmte Menge an Zeichen im Dokument verändert (hinzugefügt, entfernt) wurden. Momentan steht das ganze bei 20 Zeichen, das funktioniert gut, nur wird es sehr schnell, sehr langsam. Alternativ würde ich wohl auf manuelle CodeInspection und zeitbasierende CodeInspection umstellen müssen, aber das sagt mir nun gar nicht zu... Nun gut. Sagt Bescheid, wenn ihr noch Infos braucht, nur den ganzen Code kann ich euch kaum geben. Sind ein paar MB zuviel. Ich sag schonmal danke. Edit: Ok... ich hab mal etwas nachgedacht (währenddem ich das virtuelle Dateisystem soweit aufpoliert habe, dass man in den meisten Fällen auf einem FTP-Server arbeiten kann)... Hier mein Plan: Die CodeInspection wird immer dann aufgerufen, wenn der Benutzer eine Änderung im Dokument vorgenommen hat, und anschliessend x Sekunden (z.B. 3 oder 5) lang nichts mehr ändert. Das sollte sich sogar sehr einfach realisieren lassen. Wenn man den User dann noch informiert und vielleicht die Textarea sperrt kann man das ganze problemlos in einen anderen Thread verlegen, ohne die GUI einfrieren zu lassen. Klingt das vernünftig? Ich werd's morgen jedenfalls mal antesten.
__________________ Patrick Gotthardts Weblog. |
| |
| | Nach oben #2 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.161
|
Soo... meine Idee hat's tatsächlich gebracht. Scheint recht gut zu funktionieren. Tatsächlich ist mir eingefallen, wo ich das schonmal gesehen hatte: Santhosh hatte vor einiger Zeit mal darüber gebloggt. Nun denn. Ich mach hier mal zu.
__________________ Patrick Gotthardts Weblog. |
| |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Darstellung der Forenstartseite, Ideen, Brainstorming | Ben | Plauderecke | 45 | 19.02.2007 07:40 |
| Ideen oder Lösungen für Cache o.Ä. gesucht | ljungi | PHP-Programmierung | 10 | 08.01.2007 10:59 |
| Ideen für Firmennamen? | dsxs | Plauderecke | 2 | 07.07.2006 17:12 |
| Suche Ideen / Inspirationen für ein Layout für eine Jugendcommunity | Chr!s | Plauderecke | 18 | 02.03.2006 18:43 |