Edtor mit anzeigen eigener Tags

Status
Nicht offen für weitere Antworten.

clemson

Bekanntes Mitglied
Hallo!

Ich stehe vor folgender Aufgabe, und wollte mir von euch ein paar Tipps holen, und fragen, wie ihr das realisieren würdet.

Also, ich habe den Text eines Buches in einem JTextPane stehen. Da dieser Text unformatiert ist, möchte ich ihn mittels Tags anpassen.

Solche Tags wären unter anderem
  • preword
  • text
  • headline
  • ...

Das heisst, ich markiere eine bestimmte Passage im Text, klicke in einer ComboBox auf das Tag und dann werden um diese Textpassage am Anfang ein beispielweise <preword> und am Ende der Markierung </preword> eingefügt....


Das funktioniert mittlerweile. Das Taggen des Inhalts ist ohne Probleme möglich. Jetzt möchte ich allerdings die getaggten Elemente grafisch hervorheben. So möchte ich beispielweise den Text, welcher innerhalb eines headline tags steht, 18px und rot darstellen...

Ich möchte es nun so realisieren dass er erstens die Elemente innerhalb eines Textes grafisch anders darstellt, und dass er zweitens die tags im jtextpane nicht anzeigt...

Wenn die ganze Buchseite getaggt wurde, soll durch den Klick auf den "Speichern unter" Button der Inhalt des JTextPane's ( aber diesmal ohne Highlighting und mit Tags ) in einer Datei gespeichert werden können.


Durch die Trennung von Anzeige und Daten habe ich an ein DefaultStyledDocument gedacht.

Würdet ihr diese Idee auch mittels DefaultStyledDocument realisieren. Wobei ich für jedes verfügbare Tag eigene Anzeigemodi an das DefaultStyledDocument anhängen würde (das ist doch möglich, oder??).
 
Ich würde deine Tags durch HTML tags ersetzen die gewünschte Formatierung übernehmen.
Beim speichern machst du das umgekehrt.
 
aber das problem hierbei ist, dass der benutzer mittels einer config datei, einstellen kann, welche tags es gibt, und die diese angezeigt werden sollen ( schriftgröße und farbe ) --> es könnte sein, dass der benutzer einstellt, dass 2 verschiedene tags gleich angezeigt werden....

wie soll ich die beiden dann unterscheiden??

kann ich nicht einfach ein attribut hinzufügen zum htmlstyleddocument und sagen, dass eben das preword tag so, und das headline tag so angezeigt wird???
 
Mach dir Tag-Objekte, die ihre übersetzung in HTML zurückliefern können,
arbeite intern nur mit diesen Tags, und für die Anzeige ersetzt du diese Tags mit ihrer HTML-übersetzung
 
Wildcard hat gesagt.:
Mach dir Tag-Objekte, die ihre übersetzung in HTML zurückliefern können,
arbeite intern nur mit diesen Tags, und für die Anzeige ersetzt du diese Tags mit ihrer HTML-übersetzung

und wo würde diese übersetzung statfinden? wo kann ich dem dokument sagen, dass er ein preword tag so und so anzeigen soll??
 
Bevor du den Text in die TextPane setzt, erstetzt du die Tags durch ihre entsprechenen Übersetzungen.
Da diese ja in HTML sind, ist die Formatierung der Ausgabe ja schon klar.
 
Ich hab mich jetzt ein bisschen umgeschaut und wegen dem anzeigen der verschiedenen tags eine weitere lösungsmöglichkeit gefunden: StyleSheet


Würde das funktionieren, wenn ich in meinem JTextPane ein StyledDocument und ein Stylesheet definiere. Im Stylesheet lege ich fest, wie die einzelnen Tags angezeigt werden sollen.

Funktioniert das Anzeigen der Tags mittels einem Stylesheet mit allen Tags, oder nur mit HTML Tags?? Und wenn das funktioniert, wie würde das ungefähr zu programmieren sein??
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben