このエントリーをはてなブックマークに追加

PhraseEditor

割りと普通

PhraseEditor.ui.xml

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui">
    <ui:style>
        .boldtitle{
            font-weight:bold;
            margin:2px;
            }
                    .minlabel{
                width:40px;
            }
                    .mintext{
                width:400px;
            }
    </ui:style>
    <g:HTMLPanel>
    <g:Label ui:field='englishLabel' styleName='{style.boldtitle}'/>
    <g:HorizontalPanel><g:Label ui:field='label1' styleName='{style.minlabel}'></g:Label><g:TextBox ui:field='enquestionEditor' styleName='{style.mintext}'></g:TextBox></g:HorizontalPanel>
    <g:HorizontalPanel><g:Label ui:field='label2' styleName='{style.minlabel}'></g:Label><g:TextBox ui:field='enanswerEditor' styleName='{style.mintext}'></g:TextBox></g:HorizontalPanel>
    <g:Label ui:field='japaneseLabel'  styleName='{style.boldtitle}'/>
    <g:HorizontalPanel><g:Label ui:field='label3' styleName='{style.minlabel}'></g:Label><g:TextBox ui:field='jaquestionEditor' styleName='{style.mintext}'></g:TextBox></g:HorizontalPanel>
    <g:HorizontalPanel><g:Label ui:field='label4' styleName='{style.minlabel}'></g:Label><g:TextBox ui:field='jaanswerEditor' styleName='{style.mintext}'></g:TextBox></g:HorizontalPanel>

    <g:HorizontalPanel><g:Label ui:field='label5' styleName='{style.minlabel}'></g:Label><g:ValueListBox ui:field='priorityStringEditor'  ></g:ValueListBox></g:HorizontalPanel>
    <g:Button ui:field='button1'></g:Button>
    </g:HTMLPanel>
</ui:UiBinder>

PhraseEditor.java


package com.akjava.gwt.wordbook.client.ui;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.akjava.gwt.wordbook.client.db.PhraseData;
import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.Editor;
import com.google.gwt.editor.client.SimpleBeanEditorDriver;
import com.google.gwt.text.shared.Renderer;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.ValueListBox;
import com.google.gwt.user.client.ui.Widget;

public class PhraseEditor extends Composite implements Editor<PhraseData> {

    private static LabelAndBox2UiBinder uiBinder = GWT
            .create(LabelAndBox2UiBinder.class);

    public interface PhraseEditorDriver extends SimpleBeanEditorDriver<PhraseData, PhraseEditor> {}

    interface LabelAndBox2UiBinder extends UiBinder<Widget, PhraseEditor> {
    }

    public PhraseEditor() {
        initWidget(uiBinder.createAndBindUi(this));
        englishLabel.setText("英語");
        label1.setText("質問");
        label2.setText("回答");

        japaneseLabel.setText("日本語");
        label3.setText("質問");
        label4.setText("回答");

        label5.setText("優先度");


        List<String> values=new ArrayList<String>();
        for(int i=1;i<=10;i++){
            values.add(""+i);
        }
        priorityStringEditor.setAcceptableValues(values);
    }

    int id;
    double cdate;
    int enid;

    @UiField @Ignore Button button1;
    @UiField @Ignore Label label1,label2,label3,label4,label5,englishLabel,japaneseLabel;
    @UiField TextBox jaquestionEditor,enquestionEditor,jaanswerEditor,enanswerEditor;

    @UiField(provided = true)ValueListBox<String> priorityStringEditor = new ValueListBox<String>(new Renderer<String>() {

        @Override
        public String render(String object) {
            return object;
        }

        @Override
        public void render(String object, Appendable appendable)
                throws IOException {
            // TODO Auto-generated method stub

        }

    });


    //@UiField ListBox priorityStringEditor;
    public Button getButton(){
        return button1;
    }



}

使い方

//準備
PhraseEditorDriver newdriver=GWT.create(PhraseEditorDriver.class);
//新規作成
newData = new PhraseEditor();
保存用のデーターを取得
PhraseData data=newdriver.flush();
//登録後の初期化
PhraseData initData=createInitializeData();
newdriver.initialize(newData);
newdriver.edit(initData);
public void setEditData(
            PhraseData edata) {

        editData.setVisible(true);
        PhraseData newedata;
        if(edata==null){
            newedata=createInitializeData();
        }else{
            //the data from database cant rewrite.
            newedata=edata.copy();
        }
        editdriver.initialize(editData);

        editdriver.edit(newedata);

    }