4 - Tools

In 3 - Toolbar und Commands haben wir Funktionen über eine Werkzeugleiste eingebunden. In diesem Tutorial wollen wir uns der direkten Interaktion mit dem Dokument widmen und folgendes einbinden:

  • Scrollen mit gedrückter linker Maustaste oder dem Mausrad
  • Zoomen über Strg + Mausrad
  • Textselektion
  • Miniaturansicht des aktuellen Dokuments

Das Ergebnis des Tutorials kann in https://github.com/levigo/jwt-getting-started/tree/master/jwt-tutorial-004 überprüft werden.

Projektstruktur

Folgende Klassen passen wir in diesem Tutorial an:

Verzeichnisstruktur
└── src/main/java/                      
    └── org/jadice/
        └── client/
            └── ui/                         
                └── JadiceWidget.java

Tools

Tools sind Erweiterungen der PageView, die die Interaktion mit dem Dokument, bzw. mit der Anzeige ermöglichen. Tools werden über den ToolManager verwaltet. Eine ausführlich Beschreibung findet sich unter den folgenden Links:

Für unsere gewünschten Funktionen gibt es jeweils bereits Standardimplementierungen mit JWT. Wir registrieren diese Tools im ToolManager der PageView:

org.jwt.client.ui.JadiceWidget
private void configureToolManager() {
        ToolManager tm = viewer.getPageView().getToolManager();

        tm.register(PanForceMouseTool.class, true);
        tm.register(MouseWheelScrollTool.class, true);
        tm.register(MouseWheelZoomTool.class, true);
        tm.register(ThumbnailTool.class, true);
        tm.register(TextSelectionTool.class, true);
        tm.register(HighlightTool.class, true);

        // DefaultToolActivationPolicy automatically activates tools like the
        // TextSelectionTool and PanForceMouseTool if another tool is deactivated
        tm.setActivationPolicy(new DefaultToolActivationPolicy());
    }

Ein kurzer Überblick über unseren Code:

  • PageView.getToolManager()
    Der ToolManager unserer PageView.
  • ToolManager.register()
    Hier registrieren wir unsere Tools und legen fest, ob die Tools direkt aktiviert sein sollen.
    • PanForceMouseTool
      Mit diesem Tool können wir bei gedrückter linker Maustaste im Dokument scrollen.
    • MouseWheelScrollTool
      Ermöglicht uns das Scrollen über das Mausrad.
    • MouseWheelZoomTool
      Aktiviert das Zoomen über Strg + Mausrad
    • ThumbnailTool
      Das ThumnailTool blendet am unteren Rand einen Pfeil ein, über den die Miniaturansicht des aktuellen Dokuments eingeblendet werden kann.
    • TextSelectionTool
      Mit dem TextSelectionTool kann Text innerhalb des Dokuments markiert werden.

    • HighlightTool
      Mit dem HighlightTool wird der ausgewählt Text farblich hervorgehoben
  • DefaultToolActivationPolicy
    Die ActivationPolicy legt fest, welche Tools automatisch aktiviert werden, wenn z.B. ein anderes Tool deaktiviert wurde. Wir nutzen mit der DefaultActivationPolicy hier die JWT-Standardimplementierung.

Die vollständige Liste aller mit JWT ausgelieferten Tools findet sich im Referenzhandbuch: http://support.levigo.de/products/jadice/documentplatform/current/german/sect.tools.html#sect.tools.default-tools


Nun müssen wir den neuen Code nur noch in der init-Methode aufrufen:

org.jwt.client.ui.JadiceWidget
    private void init() {
        ...
        
		panel.add(viewer);

        configureToolManager();
    }

Zusammenfassung

In diesem Tutorial haben wir das Tool-Konzept kennengelernt. Wir können nun mit der Maus innerhalb des Dokument scrollen, zoomen und Text selektieren. Mit der Miniaturansicht können wir uns einen kompakten Überblick über das aktuelle Dokument verschaffen und gezielt zu einzelnen Seiten navigieren.