Posts Tagged ‘BVASystem’

Speicherung von Schlagworten

Montag, Juni 10th, 2013

Ein großer Nachteil, wenn man komplexe Funktionen umsetzen möchte ist, das sie meinen 2-3 Wochen Zeitrahmen total sprengen. Aktuell habe ich daher die Schlagwortfunktionalitäten in mehrere kleine Pakete zerteilt, die nun nach und nach umgesetzt werden. Heute habe ich wieder so ein kleines Päckchen komplementiert und mir fällt es gerade sehr schwer, darüber irgendwas interessantes zu schreiben.

Es ist nun nämlich möglich, das in der BVASystem-Datenbank Schlagwörter gespeichert und mit Fotos verknüpft werden können. Hört sich prinzipiell ja prima an, aber leider ist der Teil zur Anzeige der Schlagworte noch nicht so weit. Somit hat die Speicherung noch keinerlei praktischen Nutzen.

Die Anzeige der Schlagworte ist aktuell nicht möglich, da ich mir ein aufwendiges System überlegt habe, um die notwendigen Datenbankabfragen zur Anzeige der Schlagworte zu minimieren. Jedes Foto soll mit einer  Schlagwort-Kennung verknüpft werden, der in codierter Form die verwendeten Schlagworte enthält. Das Programm soll dann bereits beim Einlesen der Bildliste schauen, wie viele verschiedene Schlagworte in den Schlagwort-Kennungen stehen. Nachdem die Bildliste komplett ist, sollen dann die eigentlichen Schlagwort-Informationen decodiert werden. Der große Vorteil dabei ist, das die Schlagwort-Ansicht nur einmal beim Einlesen der Bildliste erstellt werden muss. Bis zum nächsten Update möchte ich das System mit den Schlagwort-Kennungen umgesetzt haben, damit die Test-Schlagworte endlich verschwinden können.

Auch an meiner zweiten Baustelle, den Werkzeugfenstern habe ich in den letzten beiden Wochen weitergearbeitet. Die Werkzeugfenster können nun per Drag&Drop positioniert werden. Beim Beenden des Programms werden die Positionen gespeichert und beim nächsten Programmstart wieder hergestellt. Damit ist das Grundsystem der Werkzeuge nun fertig und ich kann mich an die eigentliche Implementierung der Werkzeuge machen. Auch hier sieht es also ähnlich aus wie bei den Schlagworten: Ein wichtiger Meilenstein wurde erreicht, ein praktischer Nutzen ist allerdings noch nicht vorhanden.

Für das nächste Update habe ich mir nun vorgenommen, das zumindest das Werkzeug „Lupe“ fertiggestellt wird. Damit ich wieder etwas interessantes berichten kann.

Erste Vorschau auf neue Funktionen

Donnerstag, Mai 23rd, 2013

Nachdem ihr auf die letzte Entwicklerversion recht lange warten musstest, bin ich dieses mal um einiges schneller. In nicht einmal 2 Wochen habe ich es geschafft, die geplante Vorschau auf die neuen Funktionen, die ich in den nächsten Monaten fertigstellen möchte, zu erstellen.  Wie immer findet ihr die neue Programmversion unter Download. 

Schlagworte

Nachdem mit der letzten Version die Datenbank-Grundlagen für die Verschlagwortung von Fotos gelegt wurden, ging es nun auch gleich mit der Implementierung los. Insgesamt habe ich bereits 3 Teilaufgaben fertiggestellt. Die interne Datenschicht enthält nun ein Modul, in dem die Schlagworte eines Bildes abgelegt werden können.  Zum Test werden jedem Bild beim Laden 2 zufällige Schlagworte hinzugefügt. Diese werden in dem Bildinformationspanel für die Schlagworte auch angezeigt. Außerdem habe ich die Workeraufgabe erstellt, die zur Speicherung eines Schlagwortes dienen wird.

Schlagwortansicht mit 2 aktiven Schlagworten

Schlagwortansicht mit 2 aktiven Schlagworten

Werkzeugkasten in der Bildansicht

In allen großen Bildansichten möchte ich einige Werkzeuge zur Verfügung stellen, die die Arbeit mit dem BVASystem erleichtern sollen. So ist zum Beispiel geplant, das eine Lupe verfügbar ist, mir der der Bildbereich um den Mauszeiger herum vergrößert dargestellt werden kann. Diese soll zum Beispiel eingesetzt werden, um die Bildschärfe zu beurteilen. Außerdem ist ein Werkzeug geplant, mit dem man auf dem ersten Bild erkennen kann, wo im Foto sich der gerade angezeigte Bildbereich befindet. Weitere Werkzeuge sind denkbar, aber vorerst nicht geplant.

Fertig umgesetzt ist jetzt bereits das Grundgerüst, auf der alle Werkzeuge basieren sollen. In der rechten oberen Ecke der Bildansichten befindet sich ein kleiner Werkzeugkasten, über den, durch ein Popupmenü, einzelne Werkzeuge ausgewählt werden können. Diese erscheinen anschließend in einem kleinen Fenster über dem eigentlichen Bild. Die Werkzeuge können, wie von Windows gewohnt, über das kleine X in der oberen rechten Ecke, oder aber auch wieder über das Popupmenü geschlossen werden.

Popupmenü zur Aktivierung von Werkzeugen

Popupmenü zur Aktivierung von Werkzeugen

Ausblick

Für die nächste Version ist natürlich geplant, an beiden Funktionen weiter zu programmieren. Für die Schlagworte ist geplant, das erstmals Schlagworte in der Datenbank gespeichert und auch wieder ausgelesen werden können. Bei den Werkzeugen wird es mit dem Verschieben der Werkzeug-Fenster weitergehen. Weiterhin ist geplant, das sich das BVASystem  beim Beenden des Programmes die letzten Positionen der Werkzeug-Fenster merkt und sie beim nächsten Programmstart wiederherstellt.

Datenbankstrukturupdate Schlagworte

Dienstag, Mai 14th, 2013

Nach einer etwas längern Pause steht mit dem heutigen Versionsupdate (Version 2.1.4.62-dev) auch ein Datenbankstrukturupdate an. Die Aktualisierung der Datenbankstruktur erfolgt, wie bereits beim letzten Update, mit dem Administrationstool.  Details zur Aktualisierung der Datenbankstruktur könnt ihr in der Anleitung nachschlagen. 

Inhaltlich geht es bei dem Datenbankstrukturupdate ausschließlich um die Schlagworte. Eigentlich hatte ich ja bereits Tabellen für die Schlagworte angelegt. Aber als ich mir überlegt habe, wie die Schlagwortfunktionen im BVASystem aussehen sollen, wurde schnell klar, das die bestehenden Tabellen bei weitem nicht ausreichen. Folgende Funktionen/Eigenschaften sind künftig bei den Schlagworten geplant:

  • Schlagwort-Wolke

Wenn man eine beliebige Bildliste, wie zum Beispiel ein Fotoalbum, im BVASystem betrachtet, so sollen alle dort genutzten Schlagworte in einer Schlagwort-Wolke angezeigt werden. Häufig genutzte Schlagworte sollen hierbei größer dargestellt werden, als selten genutzte Schlagworte. Damit verbunden soll ein gewisser Komfort beim Verschlagworten von Fotos entstehen, denn in der Bildliste bereits genutzte Schlagworte müssen nicht erneut per Tastatur eingegeben werden. Ein einfacher Klick reicht aus, um sie bei weiteren Fotos zu aktivieren.

  • Hierarchische Kategorien

Im alten BVASystem war es so, das Schlagworte hierarchisch angelegt werden konnten. Wurde dort zum Beispiel das Schlagwort „Ente“ als Unterschlagwort von dem Schlagwort „Vogel“ angelegt, so konnte bei der Auswahl des Schlagwortes „Ente“ das Schlagwort „Vogel“ automatisch mit ausgewählt werden. Dieses System möchte ich jetzt nicht wieder umsetzen, da es mir persönlich schwer gefallen ist, die Schlagworte in einer Baumstruktur anzuordnen. Für die künftige Implementation ist geplant, das alle Schlagwörter gleichrangig ohne großes Ordnungssystem angelegt werden können. Dies entspricht auch mehr der gängigen Vorgehensweise, bei der Schlagworte als lose Wortaufzählungen festgelegt werden.

Allerdings möchte ich die Möglichkeit bieten, das eine Gruppe von Schlagworten einer Kategorie zugeordnet werden kann. Beim Verschlagworten von Fotos, die bei einem Strandurlaub aufgenommen wurden, werden sicherlich ganz andere Schlagworte benötigt als bei Fotos, die in den Bergen aufgenommen wurden. Sofern man die Schlagwortkategorien konsequent nutzt, ist es möglich eine Schlagwortliste zu erstellen, die nur die  Schlagworte enthält, die benötigt werden um Fotos vom Strandurlaub zu verschlagworten. Mein Ziel ist, das man sich durch die Kategorien innerhalb der Schlagworte schneller zurechtfinden kann und dadurch die Verschlagwortung schneller fertigstellen kann.

  • Vorschläge für weitere Schlagworte

Bei der Eingabe von neuen Schlagworten, sollen dem Anwender bereits genutzte Schlagworte, die mit der identischen Zeichenfolge beginnen, angezeigt werden. Dadurch möchte ich sicherstellen, das nicht verschiedene Versionen eines Schlagwortes, wie zum Beispiel Schiff/Schiffe, abgespeichert werden. 

  • Automatische Zuordnungen für Schlagworte

Ähnlich wie ich es bereits bei den Fotoalben umgesetzt habe, soll es auch für die Schlagworte eine Möglichkeit zur automatischen Zuordnung geben. Hierbei denke ich vor allem an Schlagworte, die sich geografisch lokalisieren lassen. Denkbar wäre es aber zum Beispiel auch, das man Personen per Gesichtserkennung auf Fotos identifiziert. Ich werde hier versuchen, möglichst viele Ansatzpunkte umzusetzen, damit ein möglichst flexibles System entsteht.

  • Austauschbarkeit von Schlagworten

Prinzipiell möchte ich die Möglichkeit schaffen, das die Inhalte der Schlagworttabellen ausgetauscht werden können. Gerade wenn für Schlagworte Möglichkeiten zur automatische Zuordnungen definiert wurden, erscheint es mir sinnvoll, wenn sie zwischen verschiedenen Anwendern ausgetauscht werden können. Als Austauschformat soll eine XML-Struktur genutzt werden. Eventuell wird es sogar eine öffentliche Plattform geben, die zum Austausch der Schlagwort-Definitionen dienen wird.

Programmänderungen der Version 2.1.3.62-dev

Auch wenn ich in den letzten Wochen die meiste Zeit mit dem Datenbankstrukturupdate verbracht habe, habe ich es trotzdem geschafft, eine Funktion zu implementieren, die mir schon lange auf dem Herzen liegt. Es ist  nun möglich, die Größe von einzelnen Bildinformationspanels zu verändern. Möglich ist dies durch eine Drag&Drop-Aktion, die in den Zwischenräumen der einzelnen Panels gestartet werden kann. Während man die Maustaste gedrückt hält, wird die neue Position des Zwischenraums durch eine graue Linie gekennzeichnet. Die Größenänderung wird dann beim loslassen der Maustaste durchgeführt. Die Veränderung der Größe wird so durchgeführt, das keinerlei Lücken in der Darstellung entstehen. Es ist also durchaus möglich, das mit einer Drag&Drop-Aktion mehrere Panel in ihrer Größe verändert werden.

Angepasste Bildinformationsansicht

Angepasste Bildinformationsansicht

Ausblick

Ab jetzt sollen die Programmupdates wieder im gewohnten Rhythmus stattfinden. Für die nächsten drei Wochen habe ich mir vorgenommen, die ersten Schritte zur Implementation der Schlagwortfunktionalitäten durchzuführen. Außerdem ist geplant, das die Bildkomponente, die überall zur Anzeige der Fotos genutzt wird, um Overlay-Fenster erweitert wird. In einem dieser Fenster soll später zum Beispiel ein Übersichtbild angezeigt werden, damit man auch bei herangezoomten Bildern weiß, in welchem Bildbereich man sich befindet. Insgesamt gesehen gibt es also sehr viel zu tun, so dass ich mich am besten gleich an die Arbeit mache.

BVASystem Version 2.1.4

Donnerstag, April 4th, 2013

Die Entwicklung der Version 2.1.4 stand ganz im Zeichen der Verbesserungen. So wurden in den letzten Monaten viele optische, aber auch einige technische Verbesserungen umgesetzt, wodurch das Programm viel Bedienkomfort dazu gewinnt. Gerade die Veränderung in der Funktion zum Laden von Thumbnails war mir sehr wichtig, da es dadurch erst möglich geworden ist, tausende Bilder auf einmal in eine Bildliste zu laden.

Änderungen zur Vorgängerversion

Folgende Änderungen wurden im Detail umgesetzt:

Ladefunktion für Miniaturbilder

Bisher wurden immer alle Thumbnails einer Bildliste nacheinander geladen, was dazu führte, das das BVASystem bei einer großen Bildliste sehr viel Arbeitsspeicher benötigte bzw. sogar abstürzte, wenn kein weiterer Speicher angefordert werden konnte. Neu ist nun, das nur noch die Fotos eingelesen werden, die für die Anzeige benötigt werden. Navigiert man innerhalb der Bildliste, werden die nicht mehr benötigten Bilder wieder freigegeben. Ergebnis ist, das nun deutlich weniger Arbeitsspeicher benötigt wird und das die Fotos, die man sehen möchte, schneller eingelesen sind.

Nachladen des Originalbildes

Das BVASystem ist darauf ausgelegt, das Fotos möglichst schnell eingelesen werden können. Daher arbeitet das System intern mit einem Vorschaubild, welches an die Anzeigegröße angepasst ist. Problematisch wurde es bisher allerdings, wenn man sich das Foto in der 100% Zoomstufe ansehen wollte. Dann wurde nur das Vorschaubild auf 100% skaliert, das eigentliche Bild in Originalgröße konnte man quasi nicht erreichen. Nun ist es so, das das Bild bei Bedarf vom System selbstständig in voller Größe nachgeladen wird. Ob man gerade das Vorschaubild oder das Originalbild sieht, wird über ein kleines Icon neben dem Bildtitel dargestellt. 

Hauptdialog der Version 2.1.4.61

Hauptdialog der Version 2.1.4.61

Animationpanel

Die größte optische Änderung ergibt sich durch die Einführung des Animationpanels. Es ist nun möglich, die beiden Baumansichten auszublenden. Dadurch ergibt sich deutlich mehr Raum, der für die Darstellung der Bilder genutzt werden kann. Möchte man den Ordner bzw. das Fotoalbum wechseln, so genügt es die Maus auf die verbliebenen Überschriftenbereiche zu bewegen. Anschließend wird der Baum mit einer kleinen Animation sichtbar gemacht.

Erweiterungen der Bildinformationspanel

In der Bildinformationsansicht hat sich auch einiges geändert. So ist es nun endlich möglich, einzelne Panel ein und auch wieder auszublenden. Beim erneuten Einblenden eines Panels wird dieses an der gleichen Position angezeigt, die es vor dem Ausblenden hatte. Außerdem ist es nun möglich, einzelne Panel untereinander zu tauschen und zu guter letzt ist es möglich, sich weitere eigene Ansichten zu definieren.

Neugestaltung der Vollbildansicht

Als letzten Punkt möchte ich auf die überarbeitete Vollbildansicht hinweisen. Diese wurde optisch an den Rest des Programmes angepasst und um eine Anzeige der Position innerhalb der Bildliste ergänzt.

Ausblick

Es wurde bereits begonnen, ein Bildinformationspanel zu schaffen, mit dem ein Foto mit Schlagworten versehen werden kann. Aktuell ist es in einem prototypischen Zustand, der grob zeigt wie ich mir die Verschlagwortung eines Bildes vorstelle. Es fehlt noch komplett die Bindung an die Datenschicht, so das aktuell keine Schlagworte eingegeben und gespeichert werden können. Dies möchte ich bis zur Version 2.1.5 abändern. Außerdem habe ich vor, noch einige kleinere Features zu implementieren, die mir beim täglichen Einsatz der Software fehlen. So benötige ich zum Beispiel für meine Homepage Bilder in einer Größe von 1500×1000 Pixel. Aktuell übergebe ich daher jedes Foto vom BVASystem aus an mein Bildbearbeitungsprogramm. Gerade wenn ich mehrere Bilder für die Homepage brauche ist dies recht mühsam. Daher möchte ich gerne eine Bildexportfunktion implementieren, die Fotos in der gewünschten Größe exportieren kann.

Da gleich für die nächste Version eine Datenbankänderung für die Schlagworte ansteht, wird es diesmal wohl etwas länger dauern, bis ich die nächste Entwickler-Version der Bilddatenbank fertigstellen kann. Änderungen an der Datenbankstruktur will ich möglichst selten machen, daher muss ich mir nun genau überlegen, welche Änderungen ich in den nächsten Monaten benötigen werde. Ich will ja nicht, das ihr bei jeder Entwicklerversion die Datenbank anpassen müsst. Daher bitte ich diesmal um etwas Geduld.

Austausch von Bildinformationspanels

Mittwoch, März 20th, 2013

Seit geraumer Zeit befinden sich die Bildinformationspanels in einem unfertigen Zustand im BVASystem. Zwar sind die Inhalte der einzelnen Panel funktional, aber das Grundsystem, welches hinter den Bildinformationpanels steht, ist nur rudimentär implementiert. Um diesen Zustand wenigstens etwas abzumildern, hatte ich mir vorgenommen, einen Teil der gewünschten Grundfunktionalitäten zu implementieren. Komplett fertigstellen kann ich das System zum jetzigen Zeitpunkt aber nicht, da es zu komplex ist und ich durch die viele Arbeit mein Hauptziel „Bildverwaltung“ aus den Augen verlieren würde. Allerdings ist mit dem heutigen Versionsupdate eine weitere Grundfunktionalität fertig geworden: Es ist nun möglich, 2 sichtbare Panel per Drag&Drop zu tauschen. Somit können nun also endlich Panel dort platziert werden, wo man sie gerne hätte.

Zum Tauschen zweier Bildinformationspanels muss man auf den Überschriftenbereich eines Panels klicken und dabei die Maustaste gedrückt halten. Anschließend erscheinen in der Mitte von jedem sichtbaren Panel Knöpfe, die als Ablagefläche für den Drag&Drop-Vorgang dienen. Zum Tausch muss der Mauszeiger dann zu einem der Ablageflächen gezogen werden und dort die Maustaste losgelassen werden. Anschließend werden die beiden Panel sofort getauscht. Beim Tauschen der Panels nimmt das neue Bildinformationspanel den gleichen Raum ein, den das alte Panel davor hatte. Die Struktur, mit der die Panel angeordnet waren, ändert sich also nicht.

Bildbewertung im Drag and Drop Modus

Bildbewertung im Drag and Drop Modus

Außerdem habe ich noch einige Fehler beseitigt, die mir bei der Benutzung des Programmes aufgefallen sind. So kann nun mit den Pfeiltasten zwischen den Seiten eines animierten Pagecontrols hin und hergewechselt werden. Gestört hat mich auch, das die Farbgebung der Oberfläche nicht konsequent genug gewesen ist. Sofern ich nichts übersehen habe, sollte nun zur Darstellung einer Auswahl immer die gleiche Farbe verwendet werden.

Ausblick

Für die nächste Version habe ich mir weiterhin vorgenommen, wenn auch nur noch indirekt, an den Bildinformationspanels zu arbeiten. Ich möchte nun endlich die Möglichkeit schaffen, das der Nutzer eigene Ansichten anlegen und speichern kann. Ich stelle mir vor, das man sich je nach „Aufgabe“ eine optimale Ansicht anlegt. Ich würde mir zum Beispiel extra eine Ansicht erstellen, die ich zur Bewertung von Fotos nutzen würde. Sichtbar wären dort nur die 3 Bildinformationspanels: Navigation, Foto und natürlich Bildbewertung. Da die nächste Version eine stabile Softwareversion sein soll, werde ich noch einmal verstärkt darauf achten, Fehler zu finden und diese auch gleich zu beseitigen.

Aktualisierte Oberfläche

Dienstag, März 5th, 2013

Das heutige Versionsupdate bringt eine deutliche Änderung an der Oberfläche mit sich. Im Dezember letzten Jahres habe ich damit begonnen, eine animierte Pagecontrol-Komponente zu entwickeln. Mein Ziel war es, das die nicht immer benötigte Baumansicht bei Bedarf ausgeblendet werden kann. Dadurch sollte mehr Platz für die Bildansichten geschaffen werden. Nebenbei wollte ich noch ein Problem des bisher eingesetzten Pagecontrols beseitigen.  Dort wurde nämlich der Focus nicht sichtbar dargestellt. Beide Ziele konnte ich nun zufriedenstellend erreichen, so dass in der Version 2.1.3.59-dev das alte Pagecontrol nicht mehr vorhanden ist.

Animiertes Pagecontrol

Startet man das BVASystem das erste mal, nach der Installation der neuen Version, fällt sofort die geänderte Oberfläche ins Auge. Die beiden Seiten der Baumansicht sind nun vertikal ausgerichtet. Die Baumansicht ist festgepinnt, so das noch keine Animationen erfolgen. Zum Ausblenden der Baumansicht muss dann zuerst die Pin-Nadel gelöst werden. Verlässt man anschließend mit der Maus den Bereich der Baumansicht, so wird diese ausgeblendet. Ausnahme hierbei ist, wenn die Baumansicht den Eingabefokus besitzt. Dann nämlich bleibt die Ansicht stehen, bis sich der Eingabefokus ändert. Dies soll verhindern, das der Bereich ausgeblendet wird, wenn man eigentlich eine Tastatureingabe vornehmen möchte. Beim Beenden des Programms wird der Status (angepinnt/nicht angepinnt) der Baumansicht gespeichert und beim nächsten Programmstart genauso wieder eingestellt. 

BVASystem mit geöffneter Baumansicht

BVASystem mit geöffneter Baumansicht

Damit die Optik einheitlich erscheint, wurde das Pagecontrol für die Bildansichten ebenfalls ersetzt. Eine Animation ist bei diesem Steuerelement nicht möglich, da es wenig sinnvoll ist, den Hauptbereich der Anwendung auszublenden.

BVASystem mit minimierter Baumansicht

BVASystem mit minimierter Baumansicht

Auf den beiden Bildern sieht man deutlich, wie durch den gewonnenen Platz, eine größere Anzahl von Miniaturbildern angezeigt werden kann. Mein Ziel habe ich also erreicht.

Änderungen an der Bildinformationsansicht

Damit habe ich nun endlich die erste große Baustelle abgeschlossen und kann mich auf die nächste große Baustelle stürzen. Bereits im letzten Artikel hatte ich angekündigt, die Logik hinter den Bildinformationspanel zu aktualisieren. Gerade gestern bin ich damit fertig geworden, die neuen Algorithmen zu integrieren. Und nicht nur das: Ich habe es ebenfalls geschafft, das nun einzelne Panel aus- und auch wieder eingeblendet werden können. Prinzipiell ist es möglich, Panel in beliebiger Reihenfolge ein- und auszublenden. Allerdings ist es nur bedingt möglich, das ausgeblendete Panel in gleicher Größe und Position wieder einzublenden. Ändert sich die Struktur der Ansicht zu stark, wird das Panel dann neu initialisiert. Somit entsteht immer eine valide Ansicht, bei der die gewählten Bildbereiche in möglichst optimaler Größe platziert werden.

Ausblick

In der nächsten Version habe ich mir vorgenommen, einige kleinere Bugs/Unschönheiten in der Oberfläche zu beseitigen. Außerdem habe ich vor, mich weiterhin auf die Großbaustelle Bildinformationsansicht zu konzentieren. In  rund 3 Wochen soll es möglich sein, zwei Bildinformationspanel per Drag&Drop zu tauschen. Bis dahin steht aber noch einiges an Arbeit vor mir … 

Keep it simple, stupid

Donnerstag, Februar 14th, 2013

„Keep it simple, stupid“ ist ein Satz, an den ich in den letzten Tagen häufiger denken musste. Er beschreibt ein Designkonzept, bei dem nach der einfachsten und am leichtesten zu verstehenden Lösung gestrebt wird. Auf den Weg dorthin verzettelt man sich aber meistens anständig, indem man Workaround für Workaround programmiert um das Problem vollständig zu lösen. Spätestens wenn man seinen eigenen Quelltext nach recht kurzer Zeit nicht mehr versteht, sollte man über einen alternativen Lösungsweg nachdenken.

Vor einigen Wochen ärgerte ich mich damit herum, das ich es nicht geschafft habe, die Nachbarschaftsbeziehungen der einzelnen Bildinformationspanels korrekt zu halten, wenn der Anwender einzelne Panel ausblendet. Immer wieder gab es einen Sonderfall, bei dem die Nachbarschaftsbeziehungen zerstört wurden. Normalerweise ist es nicht meine Art, aber nach einigen Tagen gab ich entnervt auf und beschloss einen Neuanfang. Ziel ist/war es einen Weg zu finden, der einfach ist, immer funktioniert und wenn möglich frei von Sonderfällen ist. „Keep it simple, stupid“ eben.

Bisher hatte ich versucht, die Nachbarschaftsbeziehungen mit jeder Aktualisierung zu prüfen und gegebenenfalls zu korrigieren. Wenn zwischen dem Panel „A“ und „B“, ein Panel „C“ eingeblendet wurde, so musste „B“ aus den Nachbarschaftsbeziehungen von „A“ entfernt und „C“ hinzugefügt werden. Bei „B“ musste der Nachbar „A“ entfernt und der Nachbar „C“ hinzugefügt werden. Bei „C“ ist es am einfachsten, denn da musste nur „A“und „B“ als Nachbar hinzugefügt werden. Hört sich einfach an, aber leider ist dies auch der einfachste Fall. Zum Beispiel habe ich die Nachbarn, die ober- und unterhalb von „A“ und „B“ liegen könnten in dem Beispiel gar nicht berücksichtigt. 

Debugdialog der Bildinformationspanel

Debugdialog der Bildinformationspanel

In der neuen Version des BVASystems bin ich meinem Ziel, eine einfache Lösung zu implementieren, nun einen großen Schritt nähergekommen. Den neuen Ansatz habe ich zum Testen in der Debug-Ansicht der Bildinformationspanels integriert. Ihr könnt diese Debug-Ansicht öffnen, in dem ihr auf das BVASystem-Icon in der Überschrift eines Bildinformationpanels klickt. Dort können  alle Nachbarschaftsbeziehungen neu bestimmt werden. Insgesamt gesehen ist der Aufwand natürlich größer, aber da im BVASystem aktuell nur 8 Panel benutzt werden können, hält sich der zeitliche Verlust in Grenzen. Auf meinem Entwicklungsrechner dauerte eine komplette Neubestimmung nur 0,03 ms. In den nächsten Tagen habe ich nun vor, die bestehende Lösung zu ersetzen, damit ich überprüfen kann, ob die neue Lösung wirklich immer funktioniert.

Prototyp: Animiertes Pagecontrol (Teil 2)

Freitag, Februar 8th, 2013

Vor einigen Tagen wurde mir bewusst, das ich gerade viel zu viele offene Punkte versuche gleichzeitig zu bearbeiten. Daher habe ich mich entschlossen, etwas gezielter an den Sachen zu arbeiten, die ich relativ schnell abschließen kann. Meine erste Wahl fiel auf das animierte Pagecontrol.

In der letzten Woche habe ich soviel Zeit wie möglich in diese Komponente und die dazugehörige Test-Anwendung gesteckt. Ich denke das ich nun soweit bin, das ich alle benötigten Eigenschaften und Funktionen umgesetzt habe, das ich an die Integration der Komponente ins BVASystem denken kann. Geplant ist diese Integration nun für die Version 2.1.3.59-dev, also in 3-4 Wochen.

Testanwendung für animiertes Pagecontrol Teil 2

Testanwendung für animiertes Pagecontrol Teil 2

Für die Neugierigen habe ich wieder die Testanwendung zum Download zusammengepackt. Auf der ersten Seite des animierten Pagecontrols, welches sich auf der rechten Seite befindet , sind nun einige Steuerelemente zur Bedienung des animierten Pagecontols auf der linken Seite zu finden. So können zum Beispiel die Beschriftungen, die Sichtbarkeit der einzelnen Seiten und sogar die Animationsgeschwindigkeit geändert werden. Weiterhin befinden sich auf dem rechten Pagecontrol auf Seite 2, 2 Knöpfe. Damit kann jeweils ein weiterer Dialog geöffnet werden. In dem ersten kann das animierte Panel, welches sich nach oben bzw. nach unten öffnet getestet werden. Der zweite Dialog zeigt ein animiertes Pagecontrol, bei dem die Animationsmöglichkeit deaktiviert wurde. Letzteres werde ich benötigten, damit ich auch die Pagecontrols ersetzen kann, wo die Animation unerwünscht ist. Mir ist dies wichtig, damit die Pagecontrols alle gleich aussehen.

Überarbeitete Vollbildansicht

Donnerstag, Januar 24th, 2013

Die alte Vollbildansicht stammt noch aus einer Zeit, wo ihre einzige Aufgabe darin bestand, ein einzelnes Foto anzuzeigen. Durch die Erweiterungen, die ich in den letzten beiden Jahren implementiert habe, wurde es langsam dringend notwendig, die Ansicht auch optisch zu überarbeiten. Wichtig waren mir vor allem 2 Änderungen. Zum einen nervte der gut gemeinte Hinweis, wie der Dialog geschlossen werden konnte und als zweites fehlte die Information, welche Position das angezeigte Foto in der Bildliste hat. 

In der ab heute verfügbaren Entwicklerversion 2.1.3.57 habe ich beide Probleme gelöst. Den Hinweis habe ich durch einen „Ansicht schließen“-Knopf im Überschrift-Bereich des Dialoges ersetzt. Außerdem habe ich der Ansicht eine Statusleiste spendiert, in der die Position innerhalb der Bildliste angezeigt wird. 

Überarbeitete Vollbildansicht

Überarbeitete Vollbildansicht

Desweiteren habe ich an eigentlich allen Baustellen, die ich begonnen habe, weitergearbeitet. Die Schlagwort-Komponente sieht optisch langsam genauso aus, wie ich es mir vorgestellt habe.  Bei der Bildinformationsansicht habe ich die Knöpfe im Kopfbereich ausgetauscht. Nun ist deutlicher zu erkennen, welche Bildinformation ein- bzw. ausgeblendet ist. Zu guter letzt habe ich mir noch ein Konzept überlegt, wie ich bei der Testanwendung Parameter speichern kann.

In den nächsten Wochen werde ich ähnlich weiterarbeiten wie bisher. Als erstes werde ich das Konzept für die Testanwendung umsetzen. Anschließend werde ich dann wieder einen Teil der Zeit mit der Schlagwortkomponente und dem Bildinformationspanel verbringen. Wahrscheinlich werde ich den Focus auf die Bildinformationspanel legen, damit ich die Anzahl der offenen Punkte endlich mal wieder reduzieren kann.

Prototyp: Animiertes Pagecontrol

Samstag, Januar 12th, 2013

Am Ende des letzten Jahres schrieb ich, das ich an einem Prototypen arbeite, der die Oberfläche des BVASystems stark verändern wird. Da ich nun alle größeren Probleme scheinbar gelöst habe, möchte ich den Prototypen heute vorstellen. Besonders daran ist diesmal, das ich zum ersten Mal eine Änderung nicht direkt in der Bilddatenbank umgesetzt habe. Ihr könnt euch den Prototypen herunterladen und quasi selber einmal ausprobieren.

Vorstellung

Das wichtigste an einer Bilddatenbank sind natürlich die Bilder und daher sollten sie den größten Teil der Oberfläche einnehmen. Je mehr Funktionen nun allerdings in das Programm integriert werden, desto kleiner wird der Bereich, der für die Fotos übrig bleibt. Daher habe ich mir gedacht, das es gut wäre, wenn nicht ständig benötigte Oberflächenelemente ausgeblendet werden können. Entstanden ist dabei ein animiertes Pagecontrol, welches  an der linken oder rechten Seite eines Dialoges angeordnet werden kann. Fährt man mit der Maus über den Beschriftungsbereich der Komponente, so wird sie durch eine kleine Animation geöffnet. Solange man sich mit der Maus über dem geöffneten Pagecontrol befindet, kann dieses ganz normal benutzt werden. Verlässt man den Bereich, so wird das Control wieder auf den Beschriftungsbereich reduziert. Zusätzlich hat man rechts oben noch die Möglichkeit das Pagecontrol zu fixieren. 

Testanwendung für animiertes Pagecontrol

Testanwendung für animiertes Pagecontrol

Geplanter Einsatz im BVASystem

Im BVASystem möchte ich das animierte Pagecontrol an 2 Stellen einsetzen. Als erstes ist geplant den jetzigen Bereich, in dem die Verzeichnis- bzw. Datenbankstruktur dargestellt werden, durch ein animiertes Pagecontrol zu ersetzen. Sofern das animierte Pagecontrol nicht von euch fixiert wird, steht dadurch fast die gesamte Monitorbreite zur Darstellung der Fotos zur Verfügung.  In der Standard-Installation wird das Pagecontrol wohl fixiert sein, damit die gewohnte Oberfläche noch vorhanden bleibt. Es wäre dann eure Entscheidung, ob ihr den Bereich immer sehen wollt, oder ob er nur bei der Auswahl eines neuen Ordners sichtbar sein soll. Auf der rechten Seite ist ein weiteres Pagecontrol geplant, auf dem Möglichkeiten zur Filterung der aktiven Bildliste geschaffen werden sollen. Beispielsweise soll es möglich sein, das nur noch die Fotos angezeigt werden, die ihr mit 5 Sternen bewertet habt. Oder es sollen nur die Bilder angezeigt werden, die mit der Kamera „X“ aufgenommen habt. Das Pagecontrol zur Filterung der Bildliste wird in der Standardinstallation nicht fixiert sein. 

Zeitplanung

Ich denke, das noch einige Zeit vergehen wird, bis das animierte Pagecontrol seinen Weg in das BVASystem findet. Es sind noch eine Menge von Details zu erledigen, damit die Komponente alle benötigten Eigenschaften erhält. Ich habe vor, die Komponente außerhalb des BVASystems fertig zu stellen und vor allem zu testen. Über meine Fortschritte dabei werde ich sicher hier im Blog berichten. Sobald die Komponente fertig ist, wird die Ersetung auf der linken Programmseite kein Problem sein und recht zügig erfolgen. Die Filterungsfunktionen werden dann um einiges aufwendiger, da hier nicht nur eine bestehende Komponente ausgetauscht werden muss. Wahrscheinlich werde ich mit der Filterung erst beginnen, sobald ich meine aktuelle Arbeit an den Schlagworten abgeschlossen habe.