untitled

Similar documents
新・明解Java入門

Java演習(4) -- 変数と型 --

PowerPoint Presentation

ALG ppt

untitled

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

226

解きながら学ぶJava入門編

Microsoft PowerPoint ppt

アルゴリズムとデータ構造1

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

: : : TSTank 2

K227 Java 2


ALG ppt

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

Q&A集

ユニット・テストの概要

Thread

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

tkk0408nari

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =


オブジェクト脳のつくり方

** 平成 16 年度 FE 午後問題 Java** 示現塾プロジェクトマネージャ テクニカルエンジニア ( ネットワーク ) など各種セミナーを開催中!! 開催日 受講料 カリキュラム等 詳しくは 今すぐアクセス!! 平成 16

oop1

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

6 p.1 6 Java GUI GUI paintcomponent GUI mouseclicked, keypressed, actionperformed mouseclicked paintcomponent thread, 1 GUI 6.0.2, mutlithread C

(Eclipse\202\305\212w\202\324Java2\215\374.pdf)


/ ( ) 8/7/ :21 p.2/64


1_cover

JavaプログラミングⅠ

Java (5) 1 Lesson 3: x 2 +4x +5 f(x) =x 2 +4x +5 x f(10) x Java , 3.0,..., 10.0, 1.0, 2.0,... flow rate (m**3/s) "flow

java_servlet2_見本

Java学習教材

presen.gby

データ構造とアルゴリズム論

1: Preference Display 1 package sample. pref ; 2 3 import android. app. Activity ; 4 import android. content. Intent ; 5 import android. content. Shar

Web 1 p.2 1 Servlet Servlet Web Web Web Apache Web Servlet JSP Web Apache Tomcat Jetty Apache Tomcat, Jetty Java JDK, Eclipse

JavaScript の使い方

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

Oracle Forms Services R6i

Client Client public void sendobject(object message) String String Web Container String RemoteEndpoint String Endpoint throwsioexception, EncodeExcept

II 1 p.1 1 Servlet 1.1 Web Web WWW HTML CGI Common Gateway Interface Web HTML Web Web CGI CGI CGI Perl, PHP C JavaScript Web CGI HTML 1.2 Servlet Java

Java知識テスト問題

Java 3 p.2 3 Java : boolean Graphics draw3drect fill3drect C int C OK while (1) int boolean switch case C Calendar java.util.calendar A

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

A B 1: Ex. MPICH-G2 C.f. NXProxy [Tanaka] 2:

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

main.dvi

コーディング基準.PDF

JavaプログラミングⅠ

B 10 : N ip2003f10.tex B : 9/12/ :02 p.1/71


:30 12:00 I. I V II. III. IV. ( a d) V. VI : A ActionListener aa addactionlistener AE ActionEvent K KeyListener ak addkeyliste

PowerPoint プレゼンテーション

Gartner Day

目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測

Microsoft PowerPoint - JavaFesta.ppt

Prog2_9th

VB.NETコーディング標準

PowerPoint Presentation

Oracle JDeveloper 10g ADF Creation Date: Jul 07, 2004 Last Update: Jul 08, 2004 Version 1.0

JAVA とテンプレート

Javaと マルチスレッド

Java updated

untitled

6-1

10K pdf

「Android Studioではじめる 簡単Androidアプリ開発」正誤表

ALG ppt

intra-mart Accel Platform

HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

55 7 Java C Java TCP/IP TCP/IP TCP TCP_RO.java import java.net.*; import java.io.*; public class TCP_RO { public static void main(string[] a

TopLink È... 3 TopLink...5 TopLink åø... 6 TopLink å Workbench O/R ~... 8 Workbench À ~... 8 Foundation Library å... 8 TopL


Quick Sort 計算機アルゴリズム特論 :2017 年度 只木進一

(Java/FX ) Java CD Java version Java VC++ Python Ruby Java Java Eclipse Java Java 3 Java for Everyone 2 10 Java Midi Java JavaFX Shape Canvas C

10-C.._241_266_.Z

1: JX-model XML File Package Import Class Intf Ctor Method SInit Field Param Local ExtdOpt ImplOpt ThrwOpt Members QName Type Stmt Label Expr ident li

2 static final int DO NOTHING ON CLOSE static final int HIDE ON CLOSE static final int DISPOSE ON CLOSE static final int EXIT ON CLOSE void setvisible

r3.dvi

1: Android 2 Android 2.1 Android 4 Activity Android Service ContentProvider BroadcastReceiver Activity ( ): Android 1 Android Service ( ): ContentProv

Q&A集

I java A

intra-mart Accel Platform — IM-LogicDesigner拡張プログラミングガイド   初版  

Oracle9i JDeveloperによるWebサービスの構築

JAVA H13 OISA JAVA 1

Java (7) Lesson = (1) 1 m 3 /s m 2 5 m 2 4 m 2 1 m 3 m 1 m 0.5 m 3 /ms 0.3 m 3 /ms 0.6 m 3 /ms 1 1 3

extends (*) (*) extend extends 2


HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

1 Java Java GUI , 2 2 jlabel1 jlabel2 jlabel3 jtextfield1 jtextfield2 jtextfield3 jbutton1 jtextfield1 jtextfield2 jtextfield3

Transcription:

-1-

1. JFace Data Binding JFace Data Binding JFace SWT JFace Data Binding JavaBean JFace Data Binding JavaBean JFace Data Binding 1JFace Data Binding JavaBean JavaBean JavaBean name num JavaBean 2JFace Data Binding JavaBean JavaBean name num JFace Data Binding JFace Data Binding JavaBean JFace Data Binding JavaBean JFace Data Binding -2-

JFace Data Binding JavaBean WEB JFace Data Binding Struts ActionForm JFace SWT Struts ActionForm JFace Data Binding OS WindowsXP Professional SP3 Java JDK 1.6.0_13 Eclipse 3.5.0 M6 (Galileo) JFaceJFace Data Binding 1.3.0 org.eclipse.core.databinding SWT JFaceJFace Data Binding 1.2.0 org.eclipse.jface.databinding /technique/doc/jface_data_binding/jfacedatabinding.zip -3-

2. JFace Data Binding 2 3 JFace Data Binding 1 SampleWindow.java public class SampleWindow { private static DataBindSampleBean samplebean = new DataBindSampleBean(); private static void initialize(shell shell) { // // textname.addmodifylistener(new ModifyListener() { public void modifytext(modifyevent e) { // bean samplebean.setname(textname.gettext()); ); textnum.addmodifylistener(new ModifyListener() { public void modifytext(modifyevent e) { try { String numstr = textnum.gettext(); if (numstr == null numstr.length() == 0) { -4-

return; // bean samplebean.setnum(integer.parseint(numstr)); catch (NumberFormatException ex) { textnum.settext(""); labelerror.settext(""); labelerror.setsize(400, 50); ); buttondouble.addselectionlistener(new SelectionAdapter() { public void widgetselected(selectionevent e) { samplebean.calcdoublenum(); // textnum.settext(integer.tostring(samplebean.getnum())); textname.settext(samplebean.getname()); 2 SampleBean.java public class SampleBean implements Serializable{ private static final long serialversionuid = 5391067181749183131L; private String name = null; private int num = 0; public String getname() { return name; public void setname(string name) { this.name = name; public int getnum() { return num; public void setnum(int num) { this.num = num; public void calcdoublenum() { setnum(this.num * 2); setname(this.name = this.name + "_" + this.num); -5-

JFace Data Binding 3DataBindSampleWinodw.jav a public class DataBindSampleWindow { private static DataBindSampleBean samplebean = new DataBindSampleBean(); private static void initialize(shell shell) { // // buttondouble.addselectionlistener(new SelectionAdapter() { public void widgetselected(selectionevent e) { samplebean.calcdoublenum(); ); // DataBindingContext dbc = new DataBindingContext(); // JavaBean Bean IObservableValue nameobservable = BeansObservables.observeValue(sampleBean, "name"); IObservableValue numobservable = BeansObservables.observeValue( samplebean, "num"); // IObservableValue textnameobservable = SWTObservables.observeText(textName, SWT.Modify); IObservableValue textnumobservable = SWTObservables.observeText(textNum, SWT.Modify); // Bean dbc.bindvalue(textnameobservable, nameobservable, null, null); dbc.bindvalue(textnumobservable, numobservable, null, null); // Bean dbc.bindvalue(swtobservables.observetext(labelerror), new AggregateValidationStatus(dbc.getBindings(), AggregateValidationStatus.MAX_SEVERITY), null, null); // -6-

4DataBindSampleBean.jav a public class DataBindSampleBean implements Serializable { private static final long serialversionuid = 5391067181749183131L; private PropertyChangeSupport changesupport = new PropertyChangeSupport(this); public void addpropertychangelistener(string propertyname, PropertyChangeListener listener) { changesupport.addpropertychangelistener(propertyname, listener); public void removepropertychangelistener(string propertyname, PropertyChangeListener listener) { changesupport.removepropertychangelistener(propertyname, listener); private String name = null; private int num = 0; PropertyChangeSupport public String getname() { return name; public void setname(string name) { String oldname = this.name; this.name = name; changesupport.firepropertychange("name", oldname, name); public int getnum() { return num; public void setnum(int num) { int oldnum = this.num; this.num = num; changesupport.firepropertychange("num", oldnum, num); public void calcdoublenum() { setnum(this.num * 2); setname(this.name + "_" + this.num); -7-

JFace Data Binding JavaBean JavaBean 1 samplebean.calcdoublenum(); // textnum.settext(integer.tostring(samplebean.getnum())); textname.settext(samplebean.getname()); JavaBean JavaBean JavaBean name num JavaBean JavaBean name JavaBean 4JFace Data Binding JavaBean name num JFace Data Binding JavaBean JavaBean JFace Data Binding -8-

5JFace Data Binding JFace Data Binding JFace Data Binding JavaBean name num JFace Data Binding JavaBean Eclipse 2 JavaBean name fullname 1 JavaBean // JavaBean IObservableValue nameobservable = BeansObservables.observeValue(sampleBean, "name"); IObservableValue numobservable = BeansObservables.observeValue( samplebean, "num"); JavaBean BeansObservables observevalue 1 JavaBean 2 Eclipse 2 2 JFace Data Binding -9-

3. JFace Data Binding 3.1. JFace Data Binding JFace Data Binding JFace Data Binding 6JFace Data Binding JavaBean -10-

3.2. JavaBean 7 SWTObservables <<create>> JavaBean name num BeansObservables <<create>> <<interface>> ISWTObservableValue PropertyChangeSupport <<create>> JavaBean name num PojoObservables SWTObservables SWT JavaBean BeansObservables JavaBean PropertyChangeSupport PropertyChangeSupport firepropertychange PojoObservables PropertyChangeSupport JavaBean -11-

PojoObservables JavaBean JavaBean 1 SWTObservables org.eclipse.jface.databinding.swt BeansObservables org.eclipse.core.databinding.beans JavaBean PojoObservables org.eclipse.core.databinding.beans POJO SWT org.eclipse.swt SWT event type PropertyChangeSupport java.beans JavaBean 3.3. 2 DataBindingContext JavaBean UpdateValueStrategy JavaBean JavaBean UpdateValueStrategy 2 UpdateValueStrategy 1 IValidator setaftergetvalidator 2 IConverter setconverter 3 IValidator setafterconvertvalidator 4 IValidator setbeforesetvalidator 3 4-12-

// Bean dbc.bindvalue(textnameobservable, nameobservable, null, null); dbc.bindvalue(textnumobservable, numobservable, null, null); UpdateValueStrategy filldefault 3.4. IConverter synchronized SimpleDateFormat 7 convert null 3 IConverter org.eclipse.core.databinding.conversion Convertor org.eclipse.core.databinding.conversion IConvertor NumberToStringConverter org.eclipse.core.databinding.conversion Converter 3 4 2-13-

8 5DataBindSampleConvertorWindow.java public class DataBindSampleConvertorWindow { private static DataBindConvertSampleBean samplebean = new DataBindConvertSampleBean(); private static void initialize(shell shell) { // DataBindingContext dbc = new DataBindingContext(); // JavaBean IObservableValue nameobservable = BeansObservables.observeValue(sampleBean, "name"); IObservableValue numobservable = BeansObservables.observeValue(sampleBean, "num"); IObservableValue dateobservable = BeansObservables.observeValue(sampleBean, "date"); // UpdateValueStrategy stringtodatestrategy = new UpdateValueStrategy(); SimpleDateFormat sdf = new SimpleDateFormat(); sdf.applypattern("yyyy/mm/dd"); StringToDateConvertor stringtodateconvertor = new StringToDateConvertor(sdf); stringtodatestrategy.setconverter(stringtodateconvertor); UpdateValueStrategy datetostringstrategy = new UpdateValueStrategy(); DateToStringConvertor datetostringconvertor = new DateToStringConvertor(sdf); datetostringstrategy.setconverter(datetostringconvertor); // Bean dbc.bindvalue(swtobservables.observetext(textname, SWT.Modify), nameobservable, null, null); dbc.bindvalue(swtobservables.observetext(textnum, SWT.Modify), numobservable, null, null); -14-

dbc.bindvalue( SWTObservables.observeText(textDate, SWT.Modify), dateobservable, stringtodatestrategy, datetostringstrategy); 6DataBindConvertSampleBean.java public class DataBindConvertSampleBean implements Serializable { private static final long serialversionuid = 5391067181749183131L; private PropertyChangeSupport changesupport = new PropertyChangeSupport(this); public void addpropertychangelistener(string propertyname, PropertyChangeListener listener) { changesupport.addpropertychangelistener(propertyname, listener); public void removepropertychangelistener(string propertyname, PropertyChangeListener listener) { changesupport.removepropertychangelistener(propertyname, listener); private String name = null; private int num = 0; private Date date = new Date(); public String getname() { return name; public void setname(string name) { String oldname = this.name; this.name = name; changesupport.firepropertychange("name", oldname, name); public int getnum() { return num; public void setnum(int num) { int oldnum = this.num; this.num = num; changesupport.firepropertychange("num", oldnum, num); -15-

public void calcdoublenum() { setnum(this.num * 2); setname(this.name + "_" + this.num); Calendar cal = Calendar.getInstance(); cal.settime(this.date); cal.add(calendar.date, this.num); setdate(cal.gettime()); public Date getdate() { return date; public void setdate(date date) { Date olddate = this.date; this.date = date; changesupport.firepropertychange("date", olddate, date); 7StringToDateConvertor.java /** */ public class StringToDateConvertor implements IConverter { private SimpleDateFormat sdf = null; public StringToDateConvertor(SimpleDateFormat sdf) { this.sdf = sdf; @Override public Object convert(object fromobject) { if (fromobject == null!(fromobject instanceof String)) { return null; try { Date fromdate = null; synchronized (fromobject){ fromdate = sdf.parse((string) fromobject); return fromdate; catch (ParseException ex) { return null; -16-

@Override public Object getfromtype() { // return String.class; @Override public Object gettotype() { // return Date.class; 8DateToStringConvertor.java /** */ public class DateToStringConvertor implements IConverter { private SimpleDateFormat sdf = null; public DateToStringConvertor(SimpleDateFormat sdf) { this.sdf = sdf; @Override public Object convert(object fromobject) { if (fromobject == null!(fromobject instanceof Date)) { return null; String fromstring = null; synchronized (fromobject) { fromstring = sdf.format((date) fromobject); return fromstring; @Override public Object getfromtype() { // return Date.class; -17-

@Override public Object gettotype() { // return String.class; JavaBean date 2 textdate date StringToDateConvertor convert Date DateToStringConvertor convert date 9 JavaBean name num date UpdateValueStrategy:stringToDateStrategy UpdateValueStrategy:dateToStringStrategy StringToDateConvertor DateToStringConvertor null 3.5. -18-

IValidator ValidationStatus Istatus JFace Data Binding 4 ok info OK warning error JavaBean cancel Error 5 IValidator org.eclipse.core.databinding.validation IStatus org.eclipse.core.runtime ValidationStatus org.eclipse.core.databinding.validation MultiValidator org.eclipse.core.databinding.validation 58 9-19-

JavaBean 9StringToDateAfterGetValidator.java public class StringToDateAfterGetValidator implements IValidator { @Override public IStatus validate(object value) { if (value == null!(value instanceof String)) { return ValidationStatus.error(""); String valuestring = (String) value; if (valuestring.length() == 0) { return ValidationStatus.error(""); String[] splitedvalue = valuestring.split("/"); if (splitedvalue.length!= 3) { return ValidationStatus.error(" yyyy/mm/dd "); Iterator<String> iter = Arrays.asList(splitedValue).iterator(); boolean toolong = false; while (iter.hasnext()) { String checktarget = iter.next(); try { if (checktarget.length() > 4) { toolong = true; Integer.parseInt(checkTarget); catch (NumberFormatException ex) { return ValidationStatus.error(" yyyy/mm/dd ", ex); if (toolong) { return ValidationStatus.warning(""); return ValidationStatus.ok(); -20-

10DataBindSampleConvertorAndValidationWindow.java DataBindSampleConvertorWindow StringToDateAfterGetValidator stringtodateaftergetvalidator = new StringToDateAfterGetValidator(); stringtodatestrategy.setaftergetvalidator(stringtodateaftergetvalidator); MultiValidator MultiValidator MultiValidator 10 10PeriodMultiValidator.java public class PeriodMultiValidator extends MultiValidator { private IObservableValue fromvalue = null; private IObservableValue tovalue = null; public PeriodMultiValidator(IObservableValue fromvalue, IObservableValue tovalue) { this.fromvalue = fromvalue; this.tovalue = tovalue; -21-

@Override protected IStatus validate() { if (fromvalue == null tovalue == null) { return ValidationStatus.error(""); Date fromdate = (Date) fromvalue.getvalue(); Date todate = (Date) tovalue.getvalue(); if (todate.before(fromdate)) { return ValidationStatus.error(""); return ValidationStatus.ok(); 11DataBindMultiValidateSampleBean.javaDataBindConvertSampleBean /** * date startdateenddate * date */ /** calcdoublenum */ public void calcdoublenum() { setnum(this.num * 2); setname(this.name + "_" + this.num); Calendar cal = Calendar.getInstance(); cal.settime(this.startdate); cal.add(calendar.date, -this.num); setstartdate(cal.gettime()); cal.settime(this.enddate); cal.add(calendar.date, this.num); setenddate(cal.gettime()); /** calcdoublenum */ -22-

12DataBindSampleMultiValidationWindow.java DataBindSampleConvertorAndValidationWindow /** JavaBean */ IObservableValue startdateobservable = BeansObservables.observeValue(sampleBean, "startdate"); IObservableValue enddateobservable = BeansObservables.observeValue( samplebean, "enddate"); /** JavaBean */ /** Bean */ // IObservableValue startdatemiddleobservable = new WritableValue(null, Date.class); IObservableValue enddatemiddleobservable = new WritableValue(null, Date.class); // dbc.bindvalue(swtobservables.observetext(textstartdate, SWT.Modify), startdatemiddleobservable, stringtodatestrategy, datetostringstrategy); dbc.bindvalue(swtobservables.observetext(textenddate, SWT.Modify), enddatemiddleobservable, stringtodatestrategy, datetostringstrategy); // PeriodMultiValidator periodmultivalidator = new PeriodMultiValidator( startdatemiddleobservable, enddatemiddleobservable); // IObservableValue startdatevalidatedobservable = periodmultivalidator.observevalidatedvalue(startdatemiddleobservable); IObservableValue enddatevalidatedobservable = periodmultivalidator.observevalidatedvalue(enddatemiddleobservable); // JavaBean dbc.bindvalue(startdatevalidatedobservable, startdateobservable, null, null); dbc.bindvalue(enddatevalidatedobservable, enddateobservable, null, null); /** Bean */ -23-

/** */ dbc.bindvalue(swtobservables.observetext(labelmultierror), periodmultivalidator.getvalidationstatus(), null, null); /** */ /** */ dbc.bindvalue(swtobservables.observetext(labelmultierror), periodmultivalidator.getvalidationstatus(), null, null); /** */ JavaBean JavaBean 11 startdatemiddle Observable PeriodMulti Validator startdatevalidated Observable JavaBean name num date PeriodMultiValidator IValidator MultiValidator observevalidatedvalue 13 getvalidationstatus 2 13 JavaBean 2 MultiValidator API -24-

addvalidationstatusprovider JFace Data Binding MultiValidator JavaDoc -25-

4. JFace Data Binding 4.1. Table TableViewer Table Excel JFace Data Binding Table JavaBean JavaBean 4 DataBindSampleBean JavaBean 1 JavaBean JavaBean 12 13DataBindSampleTableViewerWindow.java public class DataBindSampleTableViewerWindow { private static List<DataBindSampleBean> samplebeanlist = createbeans(); private static void initialize(shell shell) { // // ObservableListContentProvider listcontentprovider = new ObservableListContentProvider(); tableviewer.setcontentprovider(listcontentprovider); // WritableList writablelist = new WritableList(sampleBeanList, DataBindSampleBean.class); tableviewer.setinput(writablelist); DataBindingContext dbc = new DataBindingContext(); -26-

// IValueProperty celleditorcontroltext = CellEditorProperties.control().value(WidgetProperties.text()); // Bean IValueProperty IValueProperty nameproperty = BeanProperties.value("name"); IValueProperty numproperty = BeanProperties.value("num"); // tableviewernamecolumn.seteditingsupport(observablevalueeditingsupport.create(tableviewer, dbc, new TextCellEditor(table), celleditorcontroltext, nameproperty)); tableviewernumcolumn.seteditingsupport(observablevalueeditingsupport.create(tableviewer, dbc, new TextCellEditor(table), celleditorcontroltext, numproperty)); // JavaBean ViewerSupport.bind(tableViewer, (IObservableList) writablelist, new IValueProperty[] { nameproperty, numproperty ); Table TableViewer ContentProvider ObservableListContetnProvider JavaBean TableViewer EditingSupport ObservableValueEditingSupport ViewerSupport TableViewer Bean JavaBean -27-

5. 6. JFace Data Binding Eclipsepedia JFace Data Binding http://wiki.eclipse.org/jface_data_binding Eclipse Databinding with Eclipse RCP applications Tutorial http://www.vogella.de/articles/eclipsedatabinding/article.html firechangeevent() http://fire-change-event.blogspot.com/ Tip: Validation with a MultiValidator << EclipseSource Blog http://eclipsesource.com/blogs/2009/02/27/databinding-crossvalidation-with-a-multivali dator/ -28-