Post by Stefan Matthias AustIch habe extra nicht die Anleitung gelesen
arrgh ... und dafür saug ich mir ein Quickstart aus den Fingerkuppen ...
nur zu gern würde ich jetzt sagen können: da steht das "wie" komplett
beschrieben, ist aber nicht so, wie ich grad feststellen mußte :-)
Post by Stefan Matthias Austund tue mal so (hoffe ich)
als wenn ich noch nie das FormLayout benutzt hätte. Hier mein Bericht.
FETT (hierauf werd ich mich öfter mal zurückziehen):
demnächst werd ich das verhindern, indem ich sehr deutlich irgendwo
vermerke, daß es ein Tool für Forms-KennerInnen ist. Das ist es nicht
zwangsläufig - aber ich seh mich nicht als Forms-Erzieherin, ein
gewisses Grundwissen muß/will ich vorläufig voraussetzen.
Post by Stefan Matthias AustIch habe mir das binary gezogen, ausgepackt und mich über den Namen
"BLICENSE" gewundert. Wieso B?
hüstel ... stand während des Änderns von bekannten Vorlagen für B-inary,
vergessen umzubenenne im Release.
Post by Stefan Matthias AustKeinen Hinwis wie man das startet.
Zurück zur Webseite, da steht's dann. Mein Tipp: README-Datei mit
diesen Informationen für Leute wie mich, die Webseiten (insbesondere
welche mit kleinen Fonts ;-) ungerne komplett lesen.
hey, Du fauler S.... also die eine Zeile hinter dem link hättest Du doch
wirklich lesen können <g> Die Anmerkung in Klammern reiche ich aber mit
dem größten Vergnügen weiter :-)
Post by Stefan Matthias AustIch starte das Programm über cygin. Programm meldet, dass es
"resources/form" nicht findet, scheint aber wohl egal zu sein.
das wird demnächst ordentlich als log-warning gekennzeichnet, macht
wirklich nichts.
Post by Stefan Matthias AustWas mir ins Auge springt: Ist es gut, bei Tools gerade den dünnsten
Buchstaben, das kleine "l", als accelerator key zu definieren? Da ist
jetzt ein Punkt unter dem Tools, der komisch aussieht. Das aber nur am
Rande.
die accelerators und andere Kleinigkeiten wie ToolTips, passende icons,
Rechtschreibung, konsistente Bezeichnungen... werden nochmal
überarbeitet, hoffentlich irgendwann.
Post by Stefan Matthias AustIch sehe ein Fenster, das mir "f:d:n" und "c:d:n" und einiges
Unleserliches in viel zu schmalen Zeilen meldet. In den Spalten lese
ich "...", auch nicht besser. Mein Tipp: Ein Tooltip sollte erklären,
was denn "f:d:n" überhaupt bedeutet. Noch besser wäre vielleicht ein
"Info-Fenster" sodass ich nicht mit der Maus regungslos auf die
Zellenköpfe zielen muss.
Erstmal verweise ich auf FETT :-)
Die Spalten und Zeilenüberschriften, besonders in den Gaps sind sicher
ein Problem, da ist mir noch keine schöne aussagekräftige Lösung ein.
Ein Tooltip der die etwas längere Variante der Row/ColumnSpec String-rep
zeigt, ist auch nicht viel aussagekräftiger.
Post by Stefan Matthias AustEhrlich gesagt kann ich mit "f:d:n" nichts anfangen. Ich denke, das
Werkzeug sollte sich auch - oder vielleicht sogar besonders - an
FormLayout unkundige richten und man sollte nicht voraussetzen, dass
jeder die FormLayout-Sprache beherrscht.
siehe FETT.
Post by Stefan Matthias AustMir ist unklar, wie ich jetzt designe. Die Icons unten dienen offenbar
dazu, die Grid-Struktur zu ändern.
das scheint wirklich verwirrend zu sein - nach dem Überfahren der ersten
Icons diesen Schluß zu ziehen. Da muß ich mir was einfallen lassen,
irgendeine Idee? Ein Vorschlag war, separators im Toolbar einzufügen, um
deutlich zu machen - "gibt noch anderes als Grid-Manipulation". Für's
erste werd die Aktionen mal in die Menuleiste übernehmen, dann sieht
frau dort zumindest auf einen Blick welche möglich sind und welche
Shortcuts dazugehören.
Post by Stefan Matthias AustDoch wie definiere ich jetzt einen
Button. Mein erster Versuch, einfach etwas bei selektierter Zelle zu
tippen scheitert.
Nachdem ich im rechten Tabfolder zurück auf "Constraints" geklickt habe
(ich hatte die vorher einmal durchgeklickt und stand auf "Other"),
versuche ich mein Glück mit dem Feld "Component ID" und gebe dort "Name"
ein. Das sollte, wenn ich "Insertion Properties" richtig verstehe, ein
Label erzeugen. Es passiert aber nichts. Ein abschließendes RETURN
löscht einfach nur das Feld.
Frustrierend.
verständlich - bei der Beschreibung. Wenn Du nur wenigstens die Seite
Quickstart ... Aber Du hast Glück, genau an der Stelle hab ich vergessen
zu beschreiben, daß frau erst mit Ins einfügen und dann editieren kann
<g>
Schon beim Tippen einzufügen hat sich nicht bewährt (mir ist aber grad
entfallen, warum nicht, kann sein, daß in einer frühen Version ein
damals vorhandener Bug querschoß - das werd ich noch mal überprüfen).
Der letzte Effekt ist verwirrend - aber in Abwägung mit Alternativen
vorläufig entschieden: Die Eingabe von vielen Constraints kannst Du
schnell erledigen, indem Du auf dem Editor bleibst, mit Ins einfügst,
und dann dem gerade eingefügten einen Namen gibst. Dabei mußt Du den
Anchor in der Table verschieben (geht übrigens mit den Cursor-Tasten des
numpads bei numlock - und das steht nun wirklich im Quickstart :-) - auf
ein freies Feld. Dann müßte eigentlich das Textfield auf disabled
geschaltet werden (so wie die combos darunter), aber dann springt der
Fokus und ist nach Constraint-Ins nicht mehr im Textfield ... hmmm ...
ich versuch mal, es auf nicht-editable zu schalten stattdessen.
Post by Stefan Matthias AustLeider muss ich wieder zur Maus greifen, um den Focus zu verschieben.
Mein Tipp: Hier sollten Cursortasten funktionieren.
die normalen Cursortasten können nicht funktionieren, weil sie vom
textfield (und teilweise auch von den combos) benötigt werden. Die auf
dem Numpad (mit numlock on) gehen. Zum Springen zwischen
table/editorblock gibt es f3/shift-f3 (steht auch in - na Du weißt schon
:-)
Post by Stefan Matthias AustNachtrag: Per Tastatur geht's einfacher, allerdings scheint es nicht zu
gehen, wenn ich nach Einfg. mit einem Großbuchstaben beginnen will.
Alles, was ich zusammen mit SHIFT Tippe wird ignoriert, erst ein
Kleinbuchstabe aktiviert den inplace-Editor. Wieso?
Bug regression... muß ich überprüfen, wo das sich der wieder
eingeschlichen hat.
Post by Stefan Matthias AustDas ist überhaupt
Einfg drücken muss empfinde ich als lästig. Warum reicht nicht einfach
lostippen?
Das war auch verwirrend, es tippt sich ja schnell mal was. Aber ich
schau nochmal nach, warum genau ich diese Möglichkeit verworfen habe.
Post by Stefan Matthias AustIch mache zwei Zellen zu labels (Name, Password) und setzte dahinter
zwei Eingabefelder. Ich habe mir angewöhnt, Komponenten-Namen mit einem
Präfix zu versehen, als lbName und txtName. Es wäre nett, wenn das
Werkzeug das wüsste und mir für txtName gleich ein Textfeld anlegen
würde. Ich muss ich das manuell anpassen.
den Wunsch hab ich schon gelegentlich gehört - steht als RFE auf der
Liste. Im Moment erhöht es die Komplexität der internen Buchhaltung zu
sehr, um eine hohe Prioritat zu haben. Diese Verbindung müßte sich das
Tool ja merken. Das kollidiert mit dem Konzept der Gleichwertigkeit und
Unabhängigkeit aller Komponenten.
Aber es gibt ein Bonbon zum Trost: wenn Du ein widget mit der id xx
hast, und willst einen Label als dazugehörig markieren, dann gib ihm die
id xxLabel. Dann erscheint im PresentationEditor nur eine Zeile xx, und
die dort eingetragenen attributes werden sinnvoll auf field und label
verteilt. Beim Erzeugen der comps wird das widget als labelFor im Label
gesetzt, und das enabled des Labels ist an das enabled des widget's
gekoppelt.
Post by Stefan Matthias AustEin erster Test mit F5 ist enttäuschend, wie üblich sind die Textfelder
viel zu schmal. die Columns-Anzahl kann ich hier nicht festlegen (der
übliche Workaround in anderen Layoutmanagern) also muss ich mein Glück
mit dem FormLayout versuchen.
Die Realitätsnähe im Preview ist in der Tat oft ein Problem. Viele Comp
verhalten sich erst "normal", wenn sie irgendwas anzeigen. Dadurch sind
die Proportionen in der Anwendung andere als im Preview ... Andererseits
soll ein panel in der Anwendung ja auch dann vernünftig aussehen, wenn
seine Widgets keine Daten enthalten. BoundedSizes (hast Du ja gefunden)
sind dann ein Ausweg.
Post by Stefan Matthias AustIch probiere unter Columns einfach alle Vorgaben durch... Im Editor
ändert sich leider nie etwas, doch ein F5 zeigt unterschiede. Ich
erkenne, dass f:max(p,50dlu),n):n schon deutlich besser ist, auch wenn
mir f und n immer noch unklar sind. Das max(p,50dlu) erschließt sich
mir als das Maximum von 50dlu (wo ich zufällig weiss, dass das
dialog-units heißt, sonst wäre das vielleicht auch noch verwirrend) und
der preferred width.
der Editor soll sich nicht ändern, sonst siehe FETT
Post by Stefan Matthias AustMein Versuch die Labels rechtsbündig auszurichten erweist sich als
schwerer. Bedeutet "f" links? Was muss ich dann für rechts nehmen?
Hier komme ich ohne Kenntnis des FormLayout nicht weiter. (Naja, f heißt
wohl fill, l und r gehen auch beide, wer aber z.B. q benutzt, wundert
sich, dass diese Änderung kommentarlos ignoriert wird. Eine
Fehlermeldung wäre hier hilfreich.
s. FETT - und Fehlermeldungen kommen noch
Post by Stefan Matthias AustMein Tipp: Ich benötige einen LayoutContaint-Builder, in dem ich per
Dropdownliste oder Checkboxes o.ä. mein Constraint aus lesbaren Texten
zusammensetzen kann.
hmmm ... für constraints gibt's die doch, oder mißverstehe ich jetzt
was? Und für Rows/Columns/Borders hab ich mich dagegen entschieden, weil
dort die Standard-Specs (die kommen letztlich aus JGoodies LayoutStyle)
bevorzugt benutzt werden sollen. Wer davon abweicht, sollte wissen was
sie tut, und kann dann einfach und schnell ein paar Zeichen editieren.
Post by Stefan Matthias AustWeiterer Tipp: Die Constraints müssen im Grid sichtbar sein. Ich denke,
man könnte sie mit Pfeilen markieren. Es ist schlecht, das Änderungen
dort nicht zu sehen sind und ich extra einen Preview aufrufen muss.
Das ist gewollt :-)
Post by Stefan Matthias AustEs wäre nett, wenn man das Preview-Fenster wieder mit ESC loswird.
F5-ESC tippt sich schneller als F5 Alt+F4.
guter Vorschlag.
Post by Stefan Matthias AustIch will noch einen zentrierten Login-Button hinzufügen. Einfach drei
Zellen selektieren, Einfg. tippen und "btnLogin" eingeben ist einfach.
Der Button geht jetzt aber über die ganze Breite. Will ich nicht,
dieses max(p,50dlu) wäre genau richtig. Ich sehe aber nicht, wo ich das
für meine drei Spalten überspannende Zelle einstellen kann. Die
nächstbeste Lösung ist H-Align=Center zu setzen.
da reiche ich Dich an die Forms Faq weiter :-)
Post by Stefan Matthias AustRechts habe ich jetzt zwei Spalten zu viel, dafür klebt mein UI an den
anderen drei Seiten am Rand. Dort berauche ich also Abstände. Ich
selektiere die erste Spalte und klicke auf den ersten unteren Button.
Ich bin verwundert, dass das zwei Spalten einfügt. Also die größere
wieder anwählen und auf das dritte Icon klicken. Für oben und unten
gehe ich genauso vor.
ja wenn Du nur wenigstens - SCNR :-) War jetzt das letzte mal.
Post by Stefan Matthias AustWas mir gut gefällt ist, dass die
verschiedenen Abstände logische Namen haben (related, unrelated, ...).
Das hilft, das ganze konsistent zu gestalten. Dumm nur, dass ich für
spalten und zeilen nicht immer die selben Voreinstellungen habe.
Was meinst Du mit nicht gleich? Sie kommen beide mit dem Default für
content und related für gaps, was das konkret bedeutet bestimmt JGoodies
FormFactory.
Post by Stefan Matthias AustZusammenfassung: Alles in allem gefällt mir das Werkzeug.
freut mich.
Post by Stefan Matthias AustDer Zugang zu dem Werkzeug könnte einfacher sein und in jedem Fall würde
ich die kryptischen r:p:n Bezeichnungen so weit es geht verbannen oder
zumindest um lesbare Beschreibungen ergänzen. Ich denke, die Aufgabe
des Tools muss auch sein, das FormLayout zu erklären.
das seh ich nicht als seine Aufgabe an, jedenfalls nciht als seine
primäre und nicht jetzt.
Post by Stefan Matthias AustIch persönlich sehe ansonsten nicht, wozu man das Werkzeug braucht, denn
wenn ich erstmal so weit bin, dass ich ein Layout auf einem Grid habe
(Step 2 in deinem Beispiel), dann kann ich das auch direkt in Code
gießen. Anderen Leuten mag das anders gehen.
dann hast Du aber nur genau dieses eine panel mit dem Layout, die
presentation attributes mußt Du selber setzen.
Wenn Du dagegen den (vermeintlichen) Umweg über die Descriptions gehst,
hast Du austauschbare, wiederwertbare, kombinierbare, weitergebbare,
konsistent layoutete Einheiten. Du kannst die presentation attributes
unabhängig vom layout variieren. Und der loader (in der Anwendung
später) hinterläßt einen Container, der sich mit minimalen Aufwand
verdrahten läßt.
Einiges davon kann der loader jetzt schon (label/labelFor; actions für
buttons erzeugen, die einfach an event callbacks gekoppelt werden
können), einiges ist noch im Builder-code versteckt (databinding
zwischen widgets und properties) und vieles ist noch Zukunft (vielleicht
validation, state-management ... sicher eine lange Liste).
Post by Stefan Matthias AustIch würde mir eher ein Tool wünschen, mit dem ich genau den zweiten
Schritt realisieren kann, nämlich ein brauchbares UI interaktiv zu
entwickeln indem man zu jeder Entscheidung, die man mal ausprobieren
möchte sofort Feedback bekommt. Papier ist leider nicht sehr
änderungsfreundlich.
bei meinem Tool gibt's deutlich zwei Lager :-)
Post by Stefan Matthias AustMache den LAyoutEditor mehr WYSIWYGig. Constraints lassen sich IMHO
durch Pfeile ausdrücken, links und rechtsbündig bzw. zentriert kann man
direkt darstellen.
nein - WYSIWYG ist nicht mein Ziel und liegt auch nicht auf meinem Weg
dorthin :-)
Post by Stefan Matthias AustNachtrag: Jetzt habe ich auch das "Other"-Tab verstanden, statt wie ich
selbst einen Rand gebaut habe, kann ich den dort definieren. Okay, der
Name "Other" muss dann einfach anders werden.
Wenn Dir ein Oberbegriff für Border und Fokusreihenfolge (das fehlt da
nämlich noch) einfällt, immer her damit :-)
Egal wie ich jetzt rumgenölt habe, ich finde es sehr hilfreich, daß Du
den FormBuilder getestet und dann das auch alles aufgeschrieben hast.
Feedback ist wertvoll, vielen Dank.
Gruß
Jeanette