Uberfire

http://uberfireframework.org/

Docs : http://uberfireframework.org/docs/

0.9.x :

Quickstart

 mvn archetype:generate -B \
-DarchetypeGroupId=org.uberfire \
-DarchetypeArtifactId=uberfire-project-archetype \
-DarchetypeVersion=1.0.0.Beta1 \
-DgroupId=org.uberfire \
-DartifactId=demo \
-Dversion=1.0-SNAPSHOT \
-Dpackage=org.uberfire \
-DcapitalizedRootArtifactId=Demo
$ mvn clean install
$ cd demo-showcase/demo-webapp
$ mvn clean gwt:run
 mvn archetype:generate -B \
-DarchetypeGroupId=org.uberfire \
-DarchetypeArtifactId=uberfire-project-archetype \
-DarchetypeVersion=0.9.0.Final \
-DgroupId=org.uberfire \
-DartifactId=demo090 \
-Dversion=1.0-SNAPSHOT \
-Dpackage=org.uberfire \
-DcapitalizedRootArtifactId=Demo090

Improving Your First App

http://uberfireframework.org/docs/gettingStarted/improvingYourFirstApp.html

  • 最新の archetype (1.0.0.Beta1) でやること。0.9.0.Final ではエラーになる
  • MoodPerspective のコンパイルで問題あり。MainPerspective を参考に、@WorkbenchPanel ではなく APIで組み立てたら動いた。
    @Perspective
    public PerspectiveDefinition buildPerspective() {
        final PerspectiveDefinition p = new PerspectiveDefinitionImpl( MultiListWorkbenchPanelPresenter.class.getName() );
        p.setName( "MoodPerspective" );

        p.getRoot().addPart( new PartDefinitionImpl( new DefaultPlaceRequest( "MoodScreen" ) ) );
        
        final PanelDefinition east = new PanelDefinitionImpl( SimpleWorkbenchPanelPresenter.class.getName() );
        east.setWidth( 400 );
        east.addPart( new PartDefinitionImpl( new DefaultPlaceRequest( "MoodListenerScreen" ) ) );
        
        p.getRoot().insertChild(CompassPosition.EAST, east );

        return p;
    }

ポイント

  • EntryPoint : menu を作る
  • Perspective -> Panel -> Screen