Ausblenden von Seiten mit Hilfe des FilteredDocument
Die Beschreibung basiert auf den folgenden Showcases, die die unterschiedlichen Varianten abdecken:
Fall 1 | Fall 2 | Fall 3 | Fall 4 |
---|---|---|---|
Thumbnail-Ansicht und Haupt-PageView zeigen dasselbe, vollständige Dokument an | Thumbnail-Ansicht und Haupt-PageView zeigen dasselbe, gefilterte Dokument an → FilteredDocument with hidden pages: Synchronous Views | Thumbnail-Ansicht zeigt das gefilterte Dokument an; Haupt-PageView zeigt alle Seiten → FilteredDocument with filtered Thumbnail View | Thumbnail-Ansicht zeigt alle Seiten (ggf. mit grauem Overlay über ausgeblendete Seiten), Haupt-PageView zeigt das gefilterte Dokument an |
Fall 1+2: Synchrone Ansichten in der Thumbnail-Ansicht und Haupt-PageView
→ FilteredDocument with hidden pages: Synchronous Views. Hierfür sind folgende Anpassungen erforderlich:
Involvierte Klassen | Beschreibung | |
---|---|---|
Laden des Filters (serverseitig) |
| Serverseite: An das ladende Dokument wird in der Anstelle des Das Datenformat zur Persistierung der Information, welche Seiten ausgeblendet sein sollen, ist frei und kann integrationsseitig definiert werden. |
Erzeugen des gefilterten Dokuments |
| Clientseite: Im filteredDoc = new FilteredDocument((SerializableDocument) result); viewer.getPageView().setDocument(filteredDoc); DefaultHiddenPagesMatcher matcher = new DefaultHiddenPagesMatcher(); filteredDoc.setMatcher(matcher); Weiterhin muss an das filteredDoc.setMatcher(matcher); |
Ein-/Ausschalten des Filters | Clientseite: Das Ein- und Ausblenden von Dokumentseiten zur Laufzeit ist gleichbedeutend mit einer Veränderung des Matchers: // Add button to switch to filter Button b = new Button("Show filtered document"); b.addClickHandler(event -> filteredDoc.setMatcher(new DefaultHiddenPagesMatcher())); // Add button to disable filtering Button b2 = new Button("Show original document"); b2.addClickHandler(event -> filteredDoc.setMatcher(p -> true)); | |
Seite ein-/ausblenden | Clientseite: Wird im Showcase über ein Kontextmenü realisiert ( Beispiel mit DefaultHiddenPagesMatcher.hide(mouseEditEvent.getPage()); context.getContext().contextChanged(); Man beachte den | |
Clientseite: Beim Ausdrucken oder Export lässt sich per Parameter steuern, ob gefiltert oder ungefiltert exportiert bzw. gedruckt werden soll: new FilteredPrintingServerOperationCommand(Filtering.NONE) Serverseite: In der FilteredPrintingServerOperation.java ist zu sehen, wie im Falle Filtering filtering = request.getParameters().getFiltering(); // Iterate over all pages of the document if (filtering.equals(Filtering.NONE)) for (Page p : document.getPages()) exporter.getSourcePages().add(p); else if (filtering.equals(Filtering.ENABLED)) { DefaultHiddenPagesMatcher matcher = new DefaultHiddenPagesMatcher(); for (Page p : document.getPages()) { if (matcher.matches(p)) exporter.getSourcePages().add(p); } } | ||
Speichern | Serverseite: Filter werden (wie auch Annotationen u.ä.) über eine Die Datenstruktur zur persistenten Speicherung der Informationen ist völlig frei und kann von der Integration definiert werden. |
Fall 3: Gefilterte Thumbnail-Ansicht, vollständige Haupt-Ansicht
→ FilteredDocument with filtered Thumbnail View. Ergänzend zu den Anpassungen für Fall 1+2 ist folgendes zu konfigurieren:
Involvierte Klassen | Beschreibung | |
---|---|---|
Haupt-PageView konfigurieren | Im Hauptviewer muss das Flag viewer.getPageView().setApplyFilterInView(PageView.ApplyFilterInView.NO); | |
ThumbnailView konfigurieren | In der Thumbnail-Ansicht muss das Flag viewer.getPageView().setApplyFilterInView(PageView.ApplyFilterInView.YES); |
Fall 4: Ausgegraute Seiten in der Thumbnail-Ansicht
→ FilteredDocument with unfiltered Thumbnail View. Wie man sieht, sind in diesem Showcase die ausgeblendeten Seiten in der Thumbnail-Leiste ausgegraut dargestellt.
Diese Darstellung kann man folgendermaßen erreichen (ergänzend zu den Anpassungen für Fall 1+2 von oben):
Involvierte Klassen | Beschreibung | |
---|---|---|
ThumbnailView konfigurieren | Auf der Thumbnailansicht muss das Flag PageView thumbnailPageView = thumbnailView.getThumbnailPageView(); thumbnailPageView.setApplyFilterInView(PageView.ApplyFilterInView.NO); | |
Ausgrauen der ausgeblendeten Seiten | Um ausgeblendete Seiten auszugrauen, muss lediglich das thumbnailToolToolManager.register(HiddenPagesOverlayTool.class, true). |