You are not logged in.

Dear visitor, welcome to Jabaco - Community. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Jubaca

Beginner

  • "Jubaca" started this thread

Posts: 6

Date of registration: Dec 6th 2008

  • Send private message

1

Saturday, December 6th 2008, 5:50pm

Jabaco meets Jubaca

Hiho an die kleine (hoffentlich wachsende) Jabaco Community

ich fand die Idee mit dem Framework klasse und dachte mir, schau es dir mal an. Nach einigen rumexperimentieren, dachte ich mir jetzt mal, probierst du mal drin rumzuhacken. Tja nur was? ?( Nach ewigen hin und her überlegen, entschied ich mich den CommandButton zu erweitern. 8)

Ich habe den Button um eine Propertie erweitert mit der man den CommandButton als DropDownButton verwenden kann. Hey Manuel, wenn es dir taugt, kannst du es ja in dein Framework mit übernehmen. :)

Wenn jemand lust hat das auszuprobieren, hier eine kurze Beschreibung:
  1. CommandButton.class in der C:\Programme\Jabaco\Jabaco.jar austauschen (geht ganz gut mir winrar)
  2. Jabaco starten und ein CommandButton auf das Formular ziehen
  3. in Properties 'DropDown' = true setzen
  4. MenuItems zum Button hinzufügen (siehe unten)
  5. Abfragen welches Item geklickt wurde (siehe unten)

MenuItems hinzufügen

Jabaco Source

1
2
3
4
5
6
Public Sub Form_Load()
	Command1.addMenuItem("Menu Item 1")
	Command1.addMenuItem("Menu Item 2")
	Command1.addMenuItem("Menu Item 3")
	Command1.addMenuItem("Menu Item 4")
End Sub


Abfrage mit MenuItem

Jabaco Source

1
2
3
4
5
6
7
8
9
10
11
12
13
Public Sub Command1_Click()
	Dim MenuItemText = Command1.GetSelectedMenuItem().getText()
   
	If MenuItemText = "Menu Item 1" Then
		'Do something
		Command1.setText(MenuItemText)
	End If

	If MenuItemText = "Menu Item 2" Then
		'Do something
		Command1.setText(MenuItemText)
	End If 
End Sub


oder

Abfrage mit MenuIndex

Jabaco Source

1
2
3
4
5
6
7
8
9
10
11
12
13
Public Sub Command1_Click()
	Dim MenuItemIndex = Command1.GetSelectedMenuIndex()
   
	If MenuItemIndex = 0 Then
		'Do something
		Command1.setText("Index 0")
	End If

	If MenuItemIndex = 1 Then
		'Do something
		Command1.setText("Index 1")
	End If 
End Sub


P.S. im Attachment ist der ByteCode und SourceCode enthalten
Jubaca has attached the following file:
  • CommandButton.zip (10.82 kB - 411 times downloaded - latest: Nov 18th 2021, 3:17pm)

Manuel

Administrator

  • "Manuel" is male

Posts: 256

Date of registration: Jul 16th 2008

Location: Erlangen, Germany

Occupation: Software Developer

Hobbies: Jabaco, game theory, text-mining

  • Send private message

2

Sunday, December 7th 2008, 1:47am

Hallo Jubaca,

Quoted

Ich habe den Button um eine Propertie erweitert mit der man den CommandButton als DropDownButton
verwenden kann. Hey Manuel, wenn es dir taugt, kannst du es ja in dein Framework mit übernehmen.
Gute Arbeit :thumbup: Hattest du Schwierigkeiten bei der Modifikation? Hast du "IsClass" und "Cast" sofort gesehen, oder gewusst, oder wie bist du darauf gekommen? Ich dachte eigentlich, dass ich das noch weiter dokumentieren muss... Du verwendest mehr Java als VB-Methoden - vermutlich hast du damit mehr Erfahrung? Waren die Namespaces (vor allem die Trennung mit #) intuitiv für dich?

Ich hoffe in Zukunft werden noch mehr Entwickler am Framework arbeiten, aber momentan habe ich nicht damit gerechnet und mir noch keine Gedanken über den Workflow gemacht. Auf Dauer ist es zu viel Aufwand für mich die Änderungen im Framework selbst zu pflegen, den Compiler + IDE weiter zu entwickeln, die Community zu supporten und gleichzeitig die Dokumentation zu schreiben. Momentan versuche ich ein paar Dinge zu automatisieren, aber das Framework ist dabei eine echte Herausforderung... Evtl. wäre SVN eine gute Idee. Ein Problem ist dabei aber die Qualitätssicherung... Obwohl ich deine Arbeit wirklich sehr gut finde gibt es ein paar Kleinigkeiten die man vor dem Einchecken überarbeiten muss (zum Beispiel hast du Farben fix definiert). Oder sollte man sowas dann später erst in einem Bugfix überarbeiten? Gibt es dafür gute Vorschläge?

Jubaca

Beginner

  • "Jubaca" started this thread

Posts: 6

Date of registration: Dec 6th 2008

  • Send private message

3

Sunday, December 7th 2008, 3:03am

Hi Manuel,

super, dass es dir gefällt.

Quoted

Hattest du Schwierigkeiten bei der Modifikation? Hast du "IsClass" und "Cast" sofort gesehen, oder gewusst, oder wie bist du darauf gekommen? Ich dachte eigentlich, dass ich das noch weiter dokumentieren muss...
Ja, anfangs hatte ich Probleme, aber mit der Zeit ist es besser geworden. Ich hab mir alles durch Lesen der Sourcen angeeignet. Zum Beispiel habe ich "IsClass" und "Cast" in JBCellRenderer.jsrc gefunden. Ich mußte direkt danach suchen, da ich mit dem Problem (wie geht instanecof und casten) erstmal ratlos dastand. Eine Dokumentation würde ich trotzdem für ratsam halten. Da ich schon ein paar Sachen in Java gemacht hatte, konnte ich den Zusammenhang zwischen deinem Framework und Java erkennen.

Quoted

Du verwendest mehr Java als VB-Methoden - vermutlich hast du damit mehr Erfahrung? Waren die Namespaces (vor allem die Trennung mit #) intuitiv für dich?
Ja, das stimmt. Ist mir gar nicht aufgefallen, dass ich zu Javalastig war :) . Die Trennung mit # war für mich nicht klar. Ich hatte es nur zufällig gesehen und es dann ausprobiert, ob es das war, wofür ich es gehalten hatte. Ich habe mitbekommen, dass es nicht notwendig ist die JavaKlassen mit Namespaces anzusprechen. Ich habe es aber trotzdem gemacht, da man keine Import-Namespaces angeben kann und ansonsten durch einen blöden Zufall (z.b. eine Klasse in deinem Framework mit dem gleichen Namen wie eine in Java) kommen kann, dass dann die falsche Klasse instanziiert wird. In deiner Dokumentation wäre auch nicht schlecht, wenn du Beispiele hast, wo der selbe Code in Jabaco und in Java gezeigt wird. Dadurch kann man vielleicht schnell erkennen wo da Gemeinsamkeiten und Unterschiede gibt.

Quoted

Evtl. wäre SVN eine gute Idee. Ein Problem ist dabei aber die Qualitätssicherung
SVN wäre super. Ich habe hier auch im Forum gelesen, dass schon Bugs gefixt wurden, aber man trotzdem aufs nächste Update warten muß. Das wäre ne schöne Lösung für Entwickler, die dringenst auf dem Fix warten.
Qualitätssicherung ist ne gute frage, aber wenn jemand das momentane Repository auscheckt, kann auch nicht erwarten, dass alles super läuft. Beim Update wiederum schon.

Quoted

Auf Dauer ist es zu viel Aufwand für mich die Änderungen im Framework selbst zu pflegen, den Compiler + IDE weiter zu entwickeln, die Community zu supporten und gleichzeitig die Dokumentation zu schreiben. Momentan versuche ich ein paar Dinge zu automatisieren, aber das Framework ist dabei eine echte Herausforderung...
Ja, das glaub ich dir. Mit so einem Projekt muß man schon fast verheiratet sein, um es am laufen zu halten. Beim Framework ist momentan eigentlich nur das Wichtigste, dass es ein Dokumentation gibt. Die muß ja nicht gleich Komplett sein. Es reichen erstmal zwei Sachen:

1. Getting Started with Jabaco Framework
  • Wie fange ich an, z.b. mit einem kleinen Beispiel
  • Wie erstelle ich Properties
  • Wie kann man es testen
2. Jabaco Syntax (z.b. isClass, Cast u.s.w)

Quoted

Obwohl ich deine Arbeit wirklich sehr gut finde gibt es ein paar Kleinigkeiten die man vor dem Einchecken überarbeiten muss (zum Beispiel hast du Farben fix definiert). Oder sollte man sowas dann später erst in einem Bugfix überarbeiten? Gibt es dafür gute Vorschläge?
Ja, dieser Hack ist nicht das non plus ultra. War aber erstmal so zufrieden. Ich hatte es ja auch aus Interesse und Spaß gemacht. Ich wusste auch nicht, ob es benötigt wird oder angenommen wird.

Am besten überarbeitest du mein Code nochmal. Ich weiß ja auch nicht, ob alles passt. Wegen Farben weiß ich jetzt nicht, meinst du das schwarzen DropDown Dreieck?

In Zeile 181 hab ich noch was vergessen. Da muß noch was eingefügt werden:

Jabaco Source

1
2
3
Parent.setLayout(Nothing); 
Parent.remove(label);	<- das label was in Zeile 197 hinzugefügt wurde
myPopupMenu = Nothing

Ansonsten kann man im Nach herein den Button nicht wieder auf Normal stellen.

Ach ja, als ich das Framework mit "make Project" erstellen wollte, wurden meine Änderungen im generierten JarFile nicht übernommen. Hab dann aus dem Tempverzeichnis die CommandButton.class genommen, dort war sie aktuell

This post has been edited 2 times, last edit by "Jubaca" (Dec 7th 2008, 3:14am)


Rate this thread
WoltLab Burning Board