SWT Listener auf Label oder Text Teile

Avalarion

Mitglied
Hallo,

ich habe ein Projekt, welches derzeit auf HTML mit Ajax Ebene realisiert ist / wird. Das ganze liest Serverseitig Hashtags aus und verbindet diese mit anderen Seiten. Im Prinzip ist das ganze nichts anderes als ein angepasstes CMS, indem per Klick auf eine andere Seite verbunden wird.

Diesen Luxus hätte ich gerne auch in Java. Das Projekt soll später die Inhalte auch einfach per Programm Ansprechbar machen, da ist dann aber das Problem, wie ich das machen soll. In JavaScript wird aus "#" und " " ein Div gebaut, der einen Click Listener erhält. Wie mache ich das mitten in längerem Text in Java?

Ich hoffe es ist verständlich was ich meine...

Lorem #Ipsum Dolor Sit Bla Bla Bla Du mich auch Ich hasse es dumme Texte zu schreiben Test 2 3 4

wird in JavaScript / HTML

Code:
<div>Lorem <a href="#Ipsum">Ipsum</a> Dolor Sit Bla Bla Bla Du mich auch Ich hasse es dumme Texte zu schreiben Test 2 3 4</div>

Und soll in Java werden:

Lorem IpsumDolor Sit Bla Bla Bla Du mich auch Ich hasse es dumme Texte zu schreiben Test 2 3 4

Und das im Fliegenden Wechsel. Vermutlich muss ich da drauß 3 Labelobjekte machen, aber wie füge ich die einfach in Reihe wieder zusammen?

Gruß

Avalarion
 
Du könntest mit den Layoutmanager rumspielen, damit es so aussieht.
Ich persönlich würde es bei html belassen:
https://xhtmlrenderer.dev.java.net/
Du kannst dir dann eine XHTML Datei nach deiner Vorstellung generieren und
Code:
UserAgentCallback
implementieren, der dir die entsprechenden Links auswertet. Interessant wäre da wohl die Methode
Code:
resolveURI
.
Und es gibt gute Beispiele dazu, wo sowas ähnliches schon gemacht wird.
 
Okay, also läuft es auf:

String nehmen, auf Hash Untersuchen und Trennen und irgendwie Listener dazu bauen... Hinaus...

Anschließend ganz viele Label bauen und die, mit Hash dann zum Listenen zwingen...

Die Idee das bei HTML zu belassen finde ich unschön, denn dann bräuchte ich keine Java Anwendung schreiben, dann müsste ich den Usern nur sagen: "schiebt mal euren Firefox was kleiner!"... Oder übersehe ich was entscheidendes?
 
Naja, wenn du schon ein Projekt hast, welches HTML&AJAX benutzt, d.h. welches man mit (fast) jedem Browser benutzer kann: wozu willst du dann noch irgendwas in Java machen?
Und weil du html-text in deinem Programm renderst, heißt es ja noch lange nicht, dass du einen neuen Browser baust.
 
Mit einem StyledText widget kannst du die unterschiedlichen formatierungen mit einem einzigen widget anzeigen.
Mit einem MouseListener und getOffsetAtLocation etc. kannst du ein hyperlinkverhalten einbauen.
Wenn die Anwendung schon fertig als Webanwendung existiert frage ich mich allerdings auch wozu nochmal bauen als Javaprogramm.
 
Das kann ich mit zwei guten Gründen einfach abgeben:

1.) Ich schreibe Ende nächsten Monats Programmierkurs 1, wo die Grundlagen von SWT drin vor kommen. Und da ich es hasse unsinnige Programme zu schreoiben, mache ich dann direkt ein sinniges Programm draus!

2.) Die Datenhaltung des Programms geschieht Offline 🙂
 
Also zweifels ohne, wenn DU es für DICH sinnvoll findest, ist das Grund genug, aber:

1. Bei einer Diskussion über Sinn des Programms, ist ein Agrument "das Programm ist sinnvoll" nicht das Beste 😉
2. Offline-CMS... hmm... auch fragwürdig.

Aber um wieder beim Thema zu landen: je mehr ich darüber nachdenke, desto mehr bin ich davon überzeugt, dass das Aufsplitten in mehrere JLabels nicht das Wahre ist. Da ist die Idee mit getOffsetAtLocation wirklich besser.
 
@Sinn: Es ist Sinnvoller als einfach stupide Oberflächen durch zu programmieren, die eh nicht genutzt werden, oder? 😛

@HTML: Kann ich diese LInks dann als Listener verwenden oder wäre das wieder dieser "Browser" Effekt?

@getOffsetAtLocation: Da lese ich mich mal ein...
 

Zurück
Oben