Ansichtseinschränkung: Brennweite

Verfasst am: Donnerstag, 09. Okt. 2014 um 21:00

Für  die letzte Version des BVASystems hatte ich ja extra eine Komponente geschrieben, mit der ein Brennweiten-Bereich ausgewählt werden kann. Daher lag es nahe, diese Komponente nun ein zweites Mal einzusetzen. Nun findet sie bei der Definition der Ansichtseinschränkung nach der Brennweite ebenfalls Verwendung.

Ansichtseinschränkung Brennweite

Ansichtseinschränkung Brennweite

Die Festlegung der Einschränkung funktioniert genauso, wie bei den anderen Einschränkungen auch. Allerdings stehen diesmal andere Bedingungen zur Auswahl, denn ein „ist gleich“ und „ist ungleich“ macht keinen Sinn, wenn man einen Brennweitenbereich auswählen muss. Daher heißen die beiden Bedingungen, die zur Auswahl stehen, nun „zwischen“ und „nicht zwischen“.

Außerdem habe ich natürlich wieder viel Zeit in interne Umstellungen investiert, die man leider nicht direkt sehen kann. Der größte Brocken war dabei sicherlich die Umstellung der Bildlisten-Abfragen auf die generalisierten Datenbankkomponenten. Schwierig dabei war, das sich das Modul Ansichtseinschränkung, welches sich ja auf die Bildlisten auswirkt, nicht direkt in das neue Konzept integrieren ließ. Erst nach einigen Versuchen fand ich einen Weg, mit dem ich zufrieden bin.

Des weiteren habe ich Änderungen am Administrationstool vorgenommen. Dort habe ich die, zur Herstellung einer Datenbank notwendigen, Verbindungsbefehle erweitert. Es ist nun möglich, für das BVASystem die MySQL ODBC-Treiber in der Version 5.3.x zu benutzen. Auch habe ich gleich einen Verbindungsbefehl für meine selbst entwickelte WebDB eingepflegt. Bei der WebDB wird es allerdings nicht möglich sein, die Datenbankstruktur mit dem Administrationstool zu erstellen. Die notwendigen Scripte werden später Teil des WebDB-Paketes werden.

Für die nächste Version habe ich mir vorgenommen, die Umstellung auf die generalisierten Datenbankverbindungen soweit fertig zu stellen, das alle lesenden Zugriffe auf die Datenbank darüber durchgeführt werden. Damit Ihr dies dann auch möglichst zeitnah testen könnt, habe ich mir überlegt, einen Modus zu schaffen, in dem der Worker gezielt deaktiviert wird bzw. er keine Anfragen mehr annimmt die Änderungen an der Datenbank zum Ziel haben. Sobald ich dies fertig habe und gleichzeitig die Weiterentwicklung der WebDB noch ein Stückchen vorangetrieben habe, sollte es mir endlich möglich sein, euch eine Testdatenbank zur Verfügung zu stellen. Es wird dann also nicht mehr nötig sein, das ihr ein DBMS installieren müsst, um das BVASystem zu testen.

Viel Arbeit für eine kleine Änderung

Verfasst am: Donnerstag, 11. Sep. 2014 um 21:51

Eigentlich hatte ich ja vor, wieder die meiste Zeit in die nicht sichtbaren Änderungen zu investieren. Allerdings habe ich mich da diesmal total verkalkuliert. Als kleines sichtbares Gimmick hatte ich mir überlegt, nach langer Zeit wieder mal ein neues Element zur Bildfilterung zu implementieren. Dazu hatte ich mir die Brennweite, mit der die Fotos aufgenommen wurden, herausgesucht. Das Grundgerüst zur Bildfilterung stand eigentlich recht schnell, aber dann fiel es mir extrem schwer, ein geeignetes Oberflächenelement zu erstellen, mit dem die Filterparameter eingestellt werden können.

Schnell legte ich mich darauf fest, ähnlich wie bei dem Filterelement „mittlere Helligkeit“ vorzugehen. Dort kann durch einen Schieberegler mit zwei Schiebern der Bereich eingestellt werden, in dem sich die gesuchten Bilder befinden sollen. Allerdings hat diese Vorgehensweise bei der Brennweite einen entscheidenden Nachteil. Die gängigen Objektive, die es für Kameras zu kaufen gibt, bewegen sich in einem Bereich von 0-300 Millimeter Brennweite. Im Weitwinkelbereich, der sich bis etwa 50 Millimeter Brennweite erstreckt, führt eine Änderung um wenige Millimeter zu total unterschiedlichen Bildern. Im Telebereich dagegen ist es nicht so entscheidend, ob der Wert um 10 Millimeter größer oder kleiner ist. Die Skala des Schiebereglers sollte also nicht linear ansteigen, da ansonsten im Weitwinkelbereich nicht genau genug ausgewählt werden kann.

Daher habe ich mich entschieden, einen drei geteilten Schieberegler zu erstellen.  Das erste Drittel erfasst den Bereich von 0 bis 20 Millimeter, der mittlere Bereich erstreckt sich von 21 bis 100 Millimeter Brennweite und der letzte Bereich dient zur Auswahl der Brennweiten von 101 bis 999 Millimeter Brennweite. Ich habe ein deutlich größeres Maximum gewählt, damit auch Objektive mit exotischen Brennweiten mit dem Filter erfasst werden können. Trotzdem kann der gesuchte Bereich im Weitwinkelteil sehr genau ausgewählt werden. Damit die Komponente intuitiv bedienbar bleibt, wird unter dem Schieberegler der ausgewählte Bereich in Textform ausgegeben.

Filterkriterium Brennweite

Filterkriterium Brennweite

Da ich in die Komponente zur Auswahl des Bereiches viel Arbeit gesteckt habe, werde ich in den nächsten Wochen die Brennweite auch als Kriterium in der Ansichtseinschränkung nutzbar machen. Da die Komponente zur Auswahl bereits fertig ist, sollte diesmal wieder mehr Zeit bleiben, um die internen Änderungen voranzutreiben.

Unsichtbare Änderungen Teil 2

Verfasst am: Montag, 18. Aug. 2014 um 22:26

Auch beim heutigen Versionsupdate spielt sich wieder ein Großteil der Änderungen im Hintergrund ab. Nachdem ich beim letzten mal die einfachsten Datenbankabfragen auf die neue Datenbankzugriffsschicht umgestellt wurden, habe ich mir dieses mal alle Datenbankabfragen, die zur Erstellung des Baumes auf der linken Seite der Anwendung benötigt werden, vorgenommen. Es werden nun also die Fotoalben, die Schlagwortkategorien und der Aufnahmedatumsbereich über die neue Datenbankzugriffsschicht abgefragt. Damit muss ich nun nur noch 3 Programmmodule umstellen: die Abfrage der Bildlisten, die Abfrage der Einzelbilder und alle Änderungsabfragen, die vom Worker durchgeführt werden. Gerade der letzte Teil bereitet mir noch einiges an Kopfzerbrechen, da meine selbst geschriebene Datenbankzugriffsschicht noch nicht in der Lage ist, Parameter in SQL-Befehlen zu benutzen.

Weiterhin habe ich vor einigen Tagen damit begonnen, etwas umzusetzen, was ich „WebDB“ getauft habe. Dies soll ein Webmodul, welches ich in PHP entwickele, werden. Es wird  zwischen der eigentlichen Datenbank und dem BVASystem geschaltet. Damit möchte ich erreichen, das die BVASystem Datenbank auch auf einem Webserver installiert werden kann, auf dem man das Administrator Kennwort zur MySQL Datenbank nicht hat. Generell stelle ich es mir so vor, das das BVASystem über eine Http-Anfrage Daten bei der WebDB anfordert. Diese führt die eigentliche SQL-Abfrage durch und liefert die Ergebnisse in Form einer XML-Datei an das BVASystem. Die Datenbank stellt die Daten dann so dar, als wenn eine direkte Verbindung zur Datenbank bestanden hätte. Ein weiterer schöner Nebeneffekt wird es sein, das ich euch damit eine Demo-Datenbank zur Verfügung stellen kann. Ich erhoffe mir, das es dadurch viel einfacher wird, das BVASystem zu testen. Eine lokale Installation eines Datenbankmanagementsystems würde für den Test nämlich entfallen.

Zu guter letzt habe ich natürlich auch wieder etwas sichtbares am System verändert. Es können nun Ansichtseinschränkungen nach der automatischen Bildbewertung gesetzt werden. Außerdem befindet sich nun oben rechts ein Informationsbild, welches darauf hinweist, das eine Ansichtseinschränkung aktiv ist. Damit ist nun auch bei der eingeklappten Ordneransicht erkennbar, ob eine Ansichtseinschränkung aktiv ist.

Hinweis auf aktive Ansichtseinschränkung

Hinweis auf aktive Ansichtseinschränkung

Unsichtbare Änderungen Teil 1

Verfasst am: Donnerstag, 31. Jul. 2014 um 22:58

Mal wieder habe ich mit Änderungen an der Bilddatenbank begonnen, die man über einen längeren Zeitraum kaum bemerken wird. Dieses mal geht es um die Datenbankzugriffskomponenten. Bisher habe ich dort immer ADO-Komponenten eingesetzt, die per ODBC eine Datenbankverbindung ermöglichten. Wie ich damit begonnen habe SQLite im BVASystem zu integrieren bemerkte ich schnell, das ich dafür andere Komponenten benötige. Da ich allerdings nicht alles doppelt programmieren möchte, habe ich mir überlegt eine eigene Datenbankschnittstelle zu entwickeln, die auf beide Datenbanksysteme zugreifen kann.

Mittlerweile ist der lesende Datenbankzugriff über die neue Datenbankschnittstelle möglich und ich habe bereits einen kleinen Teil der Funktionen des BVASystems umgestellt. Die einfachen Abfragen, mit denen zum Beispiel die Auswahllisten gefüllt werden, werden jetzt über die die neue Datenbankschnittstelle durchgeführt. Eigentlich ist es etwas schade, das die SQLite Datenbank noch leer ist. Denn die umgestellten Abfragen könnten nun ohne weiteren Programmieraufwand auch über SQLite ausgeführt werden.

Ein weiteres Problem versuche ich bei der Umstellung gleich mitzulösen. Beim BVASystem ist es so, das jedes eigenständige Programmmodul eine eigene Datenbankverbindung besitzt, da die ADO-Komponenten sicht Thread-Safe sind. Nutzt man über mehrere Threads hinweg eine einzelne Datenbankverbindung kommt es zu unkontrollierbaren Programmabstürzen. Mein Problem dabei ist, das in unterschiedlichen Modulen teilweise gleiche Abfragen durchgeführt werden. Da die Module nichts voneinander wissen, habe ich die gleiche Funktionalität doppelt programmiert. Dies ist sehr unschön und soll daher nun durch eine zentralere Lösung ersetzt werden.

Ich habe damit begonnen, alle Datenbankfunktionen in nur einem Objekt zusammenzufassen. Die jeweiligen Programmmodule erhalten jeweils eine Instanz von diesem Objekt und sind somit in der Lage, alle Datenbankfunktionen auszuführen. Auch diese Zentralisierung habe ich in den letzten beiden Wochen für das erste Programmmodul umgesetzt. Die weiteren werden in den nächsten Versionen folgen.

Da ich allerdings überhaupt kein Freund davon bin, nur unsichtbare Programmänderungen umzusetzen, habe ich in den letzten Tagen noch eine schöne neue Funktion implementiert. Es ist nun möglich, die Ansicht auf die Datenbank nach der manuellen Bildbewertung auszuführen. Ab jetzt wird es nicht mehr so langwierig/langweilig, wenn man Freunden Urlaubsbilder zeigen möchte. Einfach die Einschränkung auf die am besten bewerteten Fotos setzen und schon sind die ganzen, nicht so schönen Bilder, nicht mehr sichtbar. Die neue Funktion kann, wie immer, natürlich mit der neuen Entwicklerversion getestet werden.

Ansichtseinschränkung Manuelle Bildbewertung

Ansichtseinschränkung Manuelle Bildbewertung

BVASystem Version 2.2.1

Verfasst am: Sonntag, 13. Jul. 2014 um 21:33

Die heutige Version des BVASystems, ist für mich etwas ganz besonderes, denn es ist die insgesamt einhundertste Version, die ich hier auf der Homepage veröffentlicht habe. Von diesen 100 Versionen waren 13 Versionen vom alten BVA-System 1.0. Die restlichen Versionen gehen alle auf das Konto dieses Blogs, den ich mit dem Start vom BVASystem 2.0 ins Leben gerufen habe. Ehrlich gesagt war der Blog die beste Idee, die ich jemals hatte. Ich finde es zum Beispiel gerade jetzt total interessant, in alten Entwicklungsständen zu stöbern und diese mit der aktuellen Version zu vergleichen. Es ist schon erstaunlich, auf was für eine Größe das BVASystem herangewachsen ist.  Nun aber wieder zur aktuellen Version:

Was ist neu in der Version 2.2.1

Die größte Änderung, die ich in den letzten Monaten umgesetzt habe ist die Ansichtseinschränkung. Mit dieser Funktion können unerwünschte Fotos aus den Bildlisten komplett ausgeblendet werden. Mir war diese Funktion so wichtig, damit ich die Bilder meiner Kinder ausblenden kann, wenn ich mir meine eigenen Fotos ansehen möchte. Des weiteren habe ich die Schlagwortverwaltung um weitere Funktionen erweitert. So ist es nun möglich Schlagworte umzubenennen, Schlagworte zu löschen und es können sogar 2 ähnliche Schlagworte zusammengeführt werden. Außerdem habe ich mit einigen Änderungen begonnen, die noch keine sichtbaren Früchte tragen. Wie versprochen habe ich erste Vorarbeiten durchgeführt, damit langfristig alle Datenbankfunktionen auch bei Bildern auf der lokalen Festplatte zur Verfügung stehen. Zu guter letzt habe ich mir eine eigene Scrollbar und eine eigene Scrollbox-Komponente geschrieben. Sie ersetzen nun bereits zum Großteil die hässlichen Standard-Scrollbars. 

BVASystem 2.2.1 - Einzelbildansicht

BVASystem 2.2.1 – Einzelbildansicht

Ausblick

Da ich es noch nicht ganz geschafft habe, überall im Programm meine neue Scrollbar einzubinden, steht dieses ganz oben auf meiner Wunschliste. Außerdem möchte ich auch weiterhin die Möglichkeiten zur Bildfilterung und auch der Ansichtseinschränkung erweitern. Gerade die Ansichtseinschränkung ist mit den 2 vorhandenen Kriterien noch ziemlich dünn. Der dritte Punkt, an dem ich arbeiten möchte ist etwas schwerer zu erklären. Das BVASystem hat aktuell eine sehr große technische Hürde. Wenn man das Programm wirklich testen möchte, so muss zuerst ein Datenbanksystem installiert und eingerichtet werden. Selbst wenn man dazu technisch gesehen in der Lage wäre, so wird man diesen Aufwand scheuen. Eine Lösung für das Problem wäre es, wenn ich eine Demo-Datenbank hier auf der Homepage installiere. Leider ist dies in der aktuellen Form nicht möglich, da ich dafür zu viele Datenbankrechte offen legen müsste. Daher habe ich mir etwas überlegt, damit ich beim Arbeiten an der lokalen Datenbankdatei auch dem Ziel Demo-Datenbank näher komme. Ich denke allerdings nicht, das es bis zu nächsten stabilen Softwareversion dort eine fertige Lösung geben wird. 

Die Ansichtseinschränkung

Verfasst am: Sonntag, 29. Jun. 2014 um 15:23

Anfang des Monats stellte ich mein Konzept bzw. die fertige Oberfläche zur Ansichtseinschränkung vor. Nun knapp 3 Wochen später bin ich soweit, das die Ansichtseinschränkung eingesetzt werden kann. Es ist nun möglich, das beim Betrachten nur noch die Fotos angezeigt werden, welche mit einer speziellen Kamera aufgenommen wurden. Damit habe ich nun endlich eine Möglichkeit, die Bilder meiner Kinder auszublenden.

Aktive Ansichtseinschränkung mit zwei definierten Einschränkungen

Aktive Ansichtseinschränkung mit zwei definierten Einschränkungen

Außerdem habe ich mich daran versucht, eine eigene Scrollbox-Komponente zu schreiben. Mein Problem mit der von Delphi gelieferten Scrollbox ist, das diese eine andere Scrollbar verwendet. Mir gefällt es überhaupt nicht, das in der aktuellen Version des BVASystems zwei verschiedene Scrollbars zu sehen sind. Bei der Lösung des Problems habe ich mich allerdings gewaltig verschätzt. Ich dachte, es sei total einfach ein Panel um 2 Scrollbars zu erweitern und das Verschieben durch die Funktion „ScrollBy(deltax,deltay)“ zu realisieren.  Als ich die Umsetzung fertig hatte, fiel mir dann auf, das die Funktion alle die Steuerelemente auf dem Panel bewegte, also auch die Scrollbars. Die Suche nach einer Alternative kostete mich einige Tage. Ich habe jetzt ein Panel mit den Scrollbars und ein zweites Panel, auf dem die Steuerelemente platziert werden müssen.

Ausblick

Auch wenn die Ansichtseinschränkung nun prinzipiell fertig ist, so werde ich noch einige Erweiterungen daran vornehmen müssen. So stört es mich zum Beispiel, das es aktuell noch nicht deutlich genug zu sehen ist, ob eine Einschränkung aktiv ist. Außerdem ist es noch etwas schwach, da nur ein einzelnes Kriterium zur Einschränkung zur Verfügung steht. Außerdem werde ich probieren, ob die neue Scrollbox-Komponente außerhalb des Testdialoges eingesetzt werden kann.

Oberflächenentwurf zur Ansichtseinschränkung

Verfasst am: Mittwoch, 11. Jun. 2014 um 22:23

Beim  Sortieren meiner eigenen Fotos wurde ich auf ein größeres Problem aufmerksam.  In der Familie besitzen wir mehrere verschiedene Digitalkameras. Die Bilder die dabei entstehen sollen aber alle im BVASystem verwaltet werden. Dabei stellte es sich, wenn ich Freunden Bilder zeigen wollte, als störend heraus, das die Fotos meiner Tochter immer mit angezeigt wurden. 

Es besteht zwar die Möglichkeit, die unerwünschten Fotos mit der Filter-Funktion und Sortierfunktion an das Ende der Bildlisten zu bringen, aber gänzlich ausgeblendet werden können sie nicht. Daher habe ich mir nun eine Möglichkeit überlegt, die Ansicht auf die Datenbank einzuschränken. Der dazu notwendige Oberflächenbereich ist nun fertig und kann in der neuen Programmversion 2.2.0.84-dev begutachtet werden.

Ansichtseinschränkung festlegen

Ansichtseinschränkung festlegen

Über dem Rubrikenbaum befinden sich nun 2 Knöpfe. Mit dem Ersten können, über einen Popup-Dialog, Kriterien zur Einschränkung der Datenbankansicht definiert werden. Im aktuellen Entwurf steht nur ein Kriterium, und zwar die zur Aufnahme verwendete Kamera, zur Verfügung. Für spätere Versionen ist geplant, weitere Kriterien zu schaffen. Der zweite Knopf dient zum Löschen der gesetzten Einschränkung. Ich hoffe, das das dadurch enstehende System relativ leicht zu bedienen ist und mein gewünschtes Ziel damit erreicht werden kann. 

In den nächsten Wochen werde ich mich darum kümmern, das die nun fertige Oberfläche zur Ansichtseinschränkung auch funktional umgesetzt wird. Dazu muss ich aus der Oberfläche eine Einschränkungsdefinitions-XML-Datei generieren, die ich dann in der Datenschicht des BVASystems in einen SQL Befehl umwandele. Dieser muss dann bei jeder Bildlisten-Abfrage mitgenutzt werden. Ich hoffe, das ich damit schneller vorankommen werde. In den letzten Wochen habe ich leider relativ wenig geschafft, da ich 2 Wochen im Urlaub war. Und jetzt gerade bei den schwül warmen Temperaturen, habe ich nicht wirklich Lust auf Arbeit… 

Gource Projektvisualisierung mit Perforce unter Windows

Verfasst am: Montag, 02. Jun. 2014 um 23:23

Die Versionverwaltung Perforce wird leider nicht direkt von Gource unterstützt. Aber auf dem Blog von Eric Melski habe ich eine Anleitung gefunden, wie man über einen kleinen Umweg doch zu der gewünschten Visualisierung kommt. Allerdings hatte ich doch einige Probleme, der Anleitung unter Windows zu folgen. Schwierig für mich war es, an die notwendige Log-Datei zu kommen und auch das „tcl“-Script konnte ich nicht direkt ausführen. Schlussendlich fand ich dann aber doch einen recht einfachen Weg um die Probleme zu lösen. Total überrascht war ich, als ich sah, das die normale Windows-Console in der Lage ist, Befehle in einer Schleife auszuführen. Folgende Schritte musste ich durchführen, um eine Projektvisualisierung zu starten:

1. Erzeugung der Log-Datei

Um eine Perfoce Log-Datei zu erzeugen wird eine Windows-Komandozeile benötigt. Dort führt man zuerst

p4 changes -s submitted -m 1

aus. Der Befehl erzeugt eine einzeilige Ausgabe, die die Anzahl der in Perforce gespeicherten Änderungslisten zurückliefert. Anschließend benötigt man für jede Änderungsliste die Beschreibung. Diese kann man mit folgenden Befehl in eine Datei schreiben:

for /L %i in (1,1,115) do p4 describe -s %i >> p4.log

Hierbei muss die 115 durch die vorher bestimmte Anzahl ersetzt werden.

2. Konvertierung der Log-Datei

Mit Hilfe von WinTclTk und dem Script von Erik Melski konnte ich das von Perforce erzeugte Log relativ einfach in ein für Gource verständliches Format umwandeln. In der Script-Datei muss man in der Zeile 75 eine Kleinigkeit editieren. Dort muss man den Perforce Branch eintragen, der visualisiert werden soll. Anschließend kann das Script per

„C:\program files (x86)\WinTclTK\bin\tclsh85.exe“ p42gource.tcl < p4.log > gource.log

ausgeführt werden. Als Ausgabe erzeugt das Script eine weitere Log-Datei mit der Gource dann umgehen kann. Danke schön Erik für das Script.

3. Gource starten

Als letztes muss dann nur noch Gource gestartet werden:

gource –log-format custom gource.log –hide filenames,mouse –title „BVASystem“ –file-idle-time 0

Fazit: Ein halbes Jahr mit Perforce

Verfasst am: Donnerstag, 29. Mai. 2014 um 22:08

Ich weiß, das man als Softwareentwickler eine Versionsverwaltung einsetzen sollte, da man mit ihr keine Angst mehr haben, muss irgendetwas kaputt zu machen.  Sollte man etwas „kaputt entwickeln“, geht man einfach auf den letzten funktionierenden Stand in der Versionsverwaltung zurück. Durch diese Sicherheit geht man insgesamt mutiger mit dem Projekt um und probiert auch einmal größere Änderungen. Gerade wenn man mit mehreren Entwicklern an einem Projekt arbeitet, ist der Einsatz einer Versionsverwaltung unabdingbar.

Da ich das BVASystem allein entwickele, hatte ich bis Dezember 2013 keine Versionsverwaltung im Einsatz. Vor größeren Änderungen erstellte ich mir immer manuell eine Sicherheitskopie, die ich anschließend oft vergaß. Daher sammelten sich mit der Zeit viele Sicherungskopien auf der Festplatte und müllten diese zu. Da mich die Aufräumaktion nervte, entschied ich mich dann Perforce als Versionierungssystem einzusetzen, da ich das System bereits von der Arbeit kannte. 

Nun nach einem halben Jahr muss ich sagen, das die Entscheidung gut gewesen ist. Ich habe versucht, täglich meinen Projektstand in Perforce einzustellen. Da ich 115 Änderungslisten im System habe, würde ich meinen, das mir das fast gelungen ist. Und das beste … die halbjährliche Aufräumaktion fiel diesmal aus. Ich werde es also definitiv weiter benutzen, da die Vorteile überwiegen.

Vorherige Woche stolperte ich über die Visualisierungssoftware Gource, mit der es möglich ist den Projektverlauf in Form eines Video darzustellen. Dazu benötigt die Software nur ein Protokoll aus der Versionierungssoftware. Dies probierte ich natürlich sofort aus. Im Video sieht man, welche Dateien ich im Laufe der Zeit editiert habe. Am Anfang sieht es leider etwas wild aus, da ich ja nicht von Anfang an auf Perforce gesetzt habe. Ich denke allein schon wegen des Videos lohnt es sich, die Versionierung weiterhin einzusetzen. 

 

Zusammenführung von Schlagworten

Verfasst am: Montag, 12. Mai. 2014 um 22:01

Bei der Verschlagwortung stehe ich oft vor dem Problem, das ich mehrere ähnliche Schlagworte mit der gleichen Bedeutung verwende. Gerade wenn längere Zeitspannen vergehen, in denen die Verschlagwortung durchgeführt wird, passiert der Fehler häufig. So habe ich hier im Blog zum Beispiel die Schlagworte „Schlagwort“ und „Schlagwörter“  oder auch „Fotoalbum“ und „Fotoalben“ verwendet. Diesen Fehler zu korrigieren ist zumindest hier auf der Homepage recht aufwendig.

Da mir ähnliches auch bei der Verschlagwortung meiner Fotos passiert, habe ich mir eine Möglichkeit geschaffen, mit der die Korrektur viel schneller durchgeführt werden kann. Mit der Funktion „Schlagworte zusammenführen“ können doppelte Schlagworte mit wenigen Mausklicks korrigiert werden. Dabei wird eines der ausgewählten Schlagworte gelöscht und gleichzeitig  allen Bildern, die mit dem Schlagwort verknüpft waren, das andere Schlagwort zugeordnet. Damit dabei auch wirklich nichts schief geht, steht vor dem Einsatz der Funktion ganz genau da, welches Schlagwort gelöscht und welches neu zugeordnet wird. Die Funktion wird über den Popup-Dialog ausgeführt, welcher über den einzelnen Schlagworten der Schlagwortansicht geöffnet werden kann.

Oberfläche zur Schlagwortzusammenführung

Oberfläche zur Schlagwortzusammenführung

Außerdem habe ich meine Scrollbar-Komponente soweit, das ich sie in die erste Komponente einbinden konnte. In dem Bildinformationspanel „Schlagworte“ kann sie nun bewundert werden. Im Unterschied zu einer normalen Scrollbar befinden sich bei meiner Implementation die beiden Knöpfe zur „feinen“ Navigation an der unteren bzw der rechten Seite. Ich habe mich dafür entschieden, damit die Wege die man mit der Maus zurücklegen muss, kleiner sind wenn man die Scrollbar möglichst genau platzieren möchte. Ansonsten werden die Knöpfe eigentlich gar nicht gebraucht, da die Scrollbar auch durch Klicken auf die Bereiche neben des Scrollbalkens gesteuert werden kann.

Optisch finde ich, macht meine Scrollbar einen viel besseren Eindruck. Sie passt viel besser zum Rest der Anwendung. In der nächsten Zeit heißt es für mich nun jedenfalls: „Scrollbars austauschen“.