Last active
October 4, 2015 22:27
-
-
Save milanaleksic/2708850 to your computer and use it in GitHub Desktop.
Source of example snippets used in SWT Gui Transformer page: http://milanaleksic.github.com/swt-gui-transformer/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<dependency> | |
<groupId>net.milanaleksic</groupId> | |
<artifactId>baobab-core</artifactId> | |
<version>0.4.1</version> | |
</dependency> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<dependency> | |
<groupId>net.milanaleksic</groupId> | |
<artifactId>baobab-editor</artifactId> | |
<version>0.4.1</version> | |
</dependency> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
http://maven.milanaleksic.net/release/net/milanaleksic/baobab-core/0.4.1/baobab-core-0.4.1-all.jar |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
username=User name: | |
password=Password: | |
title=Simple username/password form | |
buttonTitle=Try to login |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"_type" : "shell", | |
"_style" : "{dialog_trim}", | |
"_name" : "myFormShell", | |
"text" : "[title]", | |
"size" : "300,120", | |
"layout" : { | |
"_type" : "gridLayout", | |
"numColumns" : 2 | |
}, | |
"_children" : { | |
"label(_1)" : { | |
"text" : "[username]", | |
"layoutData" : "[gridData](end,center,true,false)" | |
}, | |
"text(usernameBox, {border})" : { | |
"layoutData" : "[gridData](fill,center,true,false)" | |
}, | |
"label(_2)" : { | |
"text" : "[password]", | |
"layoutData" : "[gridData](end,center,true,false)" | |
}, | |
"text(passwordBox, {border}|{password})" : { | |
"layoutData" : "[gridData](fill,center,true,false)" | |
}, | |
"button(btnLogin, {push})" : { | |
"text" : "[buttonTitle]", | |
"layoutData" : { | |
"_type" : "[gridData](center,center,true,false,2,1)", | |
"widthHint" : 150 | |
} | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.foobar; | |
import com.google.inject.Guice; | |
import net.milanaleksic.baobab.*; | |
import net.milanaleksic.baobab.integration.CoreModule; | |
import org.eclipse.swt.SWT; | |
import org.eclipse.swt.widgets.*; | |
import javax.inject.Inject; | |
public class MyForm { | |
@Inject private Transformer transformer; | |
@EmbeddedComponent private Text usernameBox; | |
@EmbeddedComponent private Text passwordBox; | |
@EmbeddedComponent private Shell myFormShell; | |
@EmbeddedEventListener(component = "btnLogin", event = SWT.Selection) | |
private void login() { | |
MessageBox box = new MessageBox(myFormShell, SWT.ICON_ERROR); | |
box.setMessage("You entered: username=" + usernameBox.getText() + ", password=" + passwordBox.getText()); | |
box.setText("Information"); | |
box.open(); | |
} | |
@EmbeddedEventListeners({ | |
@EmbeddedEventListener(component = "usernameBox", event = SWT.Traverse), | |
@EmbeddedEventListener(component = "passwordBox", event = SWT.Traverse) | |
}) | |
private void loginOnEnterPressed(Event event) { | |
if (event.detail == SWT.TRAVERSE_RETURN) | |
login(); | |
} | |
public static void main(String[] args) { | |
MyForm myForm = Guice.createInjector(new CoreModule()).getInstance(MyForm.class); | |
myForm.transformer.fillManagedForm(myForm).showAndAwaitClosed(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"_type" : "shell", | |
"_style" : "{dialog_trim}", | |
"text" : "Text reverser", | |
"size" : "600,150", | |
"layout" : { | |
"_type" : "gridLayout", | |
"numColumns" : 1 | |
}, | |
"_children" : { | |
"label(_1)" : { | |
"text" : "Type some text here:", | |
"layoutData" : "[gridData](center,center,true,false)" | |
}, | |
"text(text1, {border})" : { | |
"layoutData" : "[gridData](fill,center,true,false)" | |
}, | |
"label(_spacer)" : {}, | |
"label(_2)" : { | |
"text" : "And the reverse will be shown here:", | |
"layoutData" : "[gridData](center,center,true,false)" | |
}, | |
"text(text2, {border}|{read_only})" : { | |
"layoutData" : "[gridData](fill,center,true,false)" | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.foobar; | |
import com.google.inject.Guice; | |
import net.milanaleksic.baobab.*; | |
import net.milanaleksic.baobab.integration.CoreModule; | |
import net.milanaleksic.baobab.model.TransformerModel; | |
import org.eclipse.swt.SWT; | |
import javax.inject.Inject; | |
public class ObservedForm { | |
@Inject private Transformer transformer; | |
@TransformerModel(observe = true) | |
private ObservedFormModel model; | |
// this method will be executed every time SWT Text component | |
// we named "text1" in GUI file fires Modify event | |
@EmbeddedEventListener(component = "text1", event = SWT.Modify) | |
private void textModified() { | |
model.setText2(reverse(model.getSourceTextField())); | |
} | |
private String reverse(String text) { | |
if (text.isEmpty()) | |
return ""; | |
char[] chars = text.toCharArray(); | |
StringBuilder builder = new StringBuilder(chars.length); | |
builder.setLength(chars.length); | |
for (int i = 0; i < text.length(); i++) | |
builder.setCharAt(text.length() - i - 1, chars[i]); | |
return builder.toString(); | |
} | |
public static void main(String[] args) { | |
ObservedForm observedForm = Guice.createInjector(new CoreModule()).getInstance(ObservedForm.class); | |
observedForm.transformer.fillManagedForm(observedForm).showAndAwaitClosed(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.foobar; | |
import net.milanaleksic.baobab.model.TransformerProperty; | |
public class ObservedFormModel { | |
// the following annoation is not needed for a simple binding, | |
// but shows that that customization is available | |
@TransformerProperty(component = "text1", value = "text") | |
private String sourceTextField; | |
private String text2; | |
public String getSourceTextField() { | |
return sourceTextField; | |
} | |
// will fire update of SWT component "text2" because it is a | |
// properly named setter for a field without @TransformerIgnoredProperty | |
public void setText2(String text2) { | |
this.text2 = text2; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<repository> | |
<id>mavenrepo-maven.milanaleksic.net</id> | |
<name>MilanAleksic.Net repository for Maven</name> | |
<url>http://maven.milanaleksic.net/release/</url> | |
<layout>default</layout> | |
</repository> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment