??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一区二区久久久久久,9色在线观看,91国偷自产一区二区开放时间http://www.aygfsteel.com/hackest/category/23336.htmlzh-cnSun, 15 Jul 2007 06:57:25 GMTSun, 15 Jul 2007 06:57:25 GMT60SWT/JFACE的table中加入控?/title><link>http://www.aygfsteel.com/hackest/articles/129720.html</link><dc:creator>一条辉</dc:creator><author>一条辉</author><pubDate>Wed, 11 Jul 2007 15:29:00 GMT</pubDate><guid>http://www.aygfsteel.com/hackest/articles/129720.html</guid><wfw:comment>http://www.aygfsteel.com/hackest/comments/129720.html</wfw:comment><comments>http://www.aygfsteel.com/hackest/articles/129720.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/hackest/comments/commentRss/129720.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/hackest/services/trackbacks/129720.html</trackback:ping><description><![CDATA[一提到表格Qh们就惛_到EXCEL。不错,q个优秀的Y件一共提供了几千个功能点Q但Zq_一般只用到其常用的几十个功能?br>SWT/JFACE提供的表D然不能完成EXCEL的所有功能,但其常用的功能已l具备。比如:双击~辑表格、操作单元格、在单元g加入控g?br>其关键就在于CellEditor的用!<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_35_682_Open_Image onclick="this.style.display='none'; Codehighlighter1_35_682_Open_Text.style.display='none'; Codehighlighter1_35_682_Closed_Image.style.display='inline'; Codehighlighter1_35_682_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_35_682_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_35_682_Closed_Text.style.display='none'; Codehighlighter1_35_682_Open_Image.style.display='inline'; Codehighlighter1_35_682_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">items.length; i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">) </span><span id=Codehighlighter1_35_682_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_35_682_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        TableEditor editor </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> TableEditor (table);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        CCombo combo </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> CCombo (table, SWT.NONE);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        combo.setText(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">CCombo</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        combo.add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">item 1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        combo.add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">item 2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        editor.grabHorizontal </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        editor.setEditor(combo, items[i], </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        editor </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> TableEditor (table);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        Text text </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Text (table, SWT.NONE);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        text.setText(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Text</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        editor.grabHorizontal </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        editor.setEditor(text, items[i], </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        editor </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> TableEditor (table);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        Button button </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Button (table, SWT.CHECK);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        button.pack ();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        editor.minimumWidth </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> button.getSize ().x;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        editor.horizontalAlignment </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> SWT.LEFT;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        editor.setEditor (button, items[i], </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>    }</span></span></div> 用以上代码加入CCombo和Check?br>关键在于Q?br>editor.setEditor(combo, items[i], 0);<br>combo为控件对象,item[i]?为确定editorQ单元格Q的位置?br>有了q个函数可以Q意加控g了。特D情况加入text控g可实现双击~辑Q代码如下:<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_50_836_Open_Image onclick="this.style.display='none'; Codehighlighter1_50_836_Open_Text.style.display='none'; Codehighlighter1_50_836_Closed_Image.style.display='inline'; Codehighlighter1_50_836_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_50_836_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_50_836_Closed_Text.style.display='none'; Codehighlighter1_50_836_Open_Image.style.display='inline'; Codehighlighter1_50_836_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #000000">table.addSelectionListener(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> SelectionAdapter() </span><span id=Codehighlighter1_50_836_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_50_836_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_99_833_Open_Image onclick="this.style.display='none'; Codehighlighter1_99_833_Open_Text.style.display='none'; Codehighlighter1_99_833_Closed_Image.style.display='inline'; Codehighlighter1_99_833_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_99_833_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_99_833_Closed_Text.style.display='none'; Codehighlighter1_99_833_Open_Image.style.display='inline'; Codehighlighter1_99_833_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> widgetSelected(SelectionEvent e) </span><span id=Codehighlighter1_99_833_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_99_833_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Clean up any previous editor control</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            Control oldEditor </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> editor.getEditor();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (oldEditor </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) oldEditor.dispose();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Identify the selected row</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            TableItem item </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (TableItem)e.item;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (item </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> The control that will be the editor must be a child of the Table</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            Text newEditor </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Text(table, SWT.NONE);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            newEditor.setText(item.getText(EDITABLECOLUMN));<br><img id=Codehighlighter1_560_722_Open_Image onclick="this.style.display='none'; Codehighlighter1_560_722_Open_Text.style.display='none'; Codehighlighter1_560_722_Closed_Image.style.display='inline'; Codehighlighter1_560_722_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_560_722_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_560_722_Closed_Text.style.display='none'; Codehighlighter1_560_722_Open_Image.style.display='inline'; Codehighlighter1_560_722_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>            newEditor.addModifyListener(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> ModifyListener() </span><span id=Codehighlighter1_560_722_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_560_722_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_605_717_Open_Image onclick="this.style.display='none'; Codehighlighter1_605_717_Open_Text.style.display='none'; Codehighlighter1_605_717_Closed_Image.style.display='inline'; Codehighlighter1_605_717_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_605_717_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_605_717_Closed_Text.style.display='none'; Codehighlighter1_605_717_Open_Image.style.display='inline'; Codehighlighter1_605_717_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>                </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> modifyText(ModifyEvent me) </span><span id=Codehighlighter1_605_717_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_605_717_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                    Text text </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (Text)editor.getEditor();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                    editor.getItem().setText(EDITABLECOLUMN, text.getText());<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>                }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>            }</span></span><span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            newEditor.selectAll();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            newEditor.setFocus();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            editor.setEditor(newEditor, item, EDITABLECOLUMN);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000">);</span></div> 哈哈 q样可以了哦!<br><br> <img src ="http://www.aygfsteel.com/hackest/aggbug/129720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/hackest/" target="_blank">一条辉</a> 2007-07-11 23:29 <a href="http://www.aygfsteel.com/hackest/articles/129720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GEF中POLICY的位|。。?/title><link>http://www.aygfsteel.com/hackest/articles/124847.html</link><dc:creator>一条辉</dc:creator><author>一条辉</author><pubDate>Sun, 17 Jun 2007 14:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/hackest/articles/124847.html</guid><wfw:comment>http://www.aygfsteel.com/hackest/comments/124847.html</wfw:comment><comments>http://www.aygfsteel.com/hackest/articles/124847.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/hackest/comments/commentRss/124847.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/hackest/services/trackbacks/124847.html</trackback:ping><description><![CDATA[刚刚看了几篇文档Q对GEF中的POLICY的位|有了更清楚的理解?br>POLICY有几U类型:NOTEPOLICY,COMPONENTPOLICY,LAYOUTPOLICY;分别对应REQUEST的几U类型,一旦出现REQUEST在EDITPART里面扄应的POLICYQ然后在POLICY中执行COMMAND。当然要lCOMMAND传递一定的参数Q比如MODEL,CONSTRAINT{等<br>调用POLICY的GETCOMMANDQ)函数Q得到相应的一个或多个COMMANDQ然后分别执行,q样改变了MODEL?br>最后在EDITPART里面d监听? <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">abstract</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> EditPartWithListener </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000"> AbstractGraphicalEditPart </span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_113_478_Open_Image onclick="this.style.display='none'; Codehighlighter1_113_478_Open_Text.style.display='none'; Codehighlighter1_113_478_Closed_Image.style.display='inline'; Codehighlighter1_113_478_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_113_478_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_113_478_Closed_Text.style.display='none'; Codehighlighter1_113_478_Open_Image.style.display='inline'; Codehighlighter1_113_478_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>        PropertyChangeListener </span><span id=Codehighlighter1_113_478_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_113_478_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_142_306_Open_Image onclick="this.style.display='none'; Codehighlighter1_142_306_Open_Text.style.display='none'; Codehighlighter1_142_306_Closed_Image.style.display='inline'; Codehighlighter1_142_306_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_142_306_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_142_306_Closed_Text.style.display='none'; Codehighlighter1_142_306_Open_Image.style.display='inline'; Codehighlighter1_142_306_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>      </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> activate() </span><span id=Codehighlighter1_142_306_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_142_306_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">super</span><span style="COLOR: #000000">.activate();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> It registers with a model by making self into listeners.</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            ((AbstractModel) getModel()).addPropertyChangeListener(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>          }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_338_475_Open_Image onclick="this.style.display='none'; Codehighlighter1_338_475_Open_Text.style.display='none'; Codehighlighter1_338_475_Closed_Image.style.display='inline'; Codehighlighter1_338_475_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_338_475_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_338_475_Closed_Text.style.display='none'; Codehighlighter1_338_475_Open_Image.style.display='inline'; Codehighlighter1_338_475_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>          </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> deactivate() </span><span id=Codehighlighter1_338_475_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_338_475_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">super</span><span style="COLOR: #000000">.deactivate();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> It deletes from a model.</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            ((AbstractModel) getModel()).removePropertyChangeListener(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>          }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div> <br>然后QHelloEditPart 要派生自q个抽象c,然后在模型改变时h视图。注意这里用C<br>前面讄的变量P_CONSTRAINT。通过q个变量我们才知道是要改变HelloModel 模型的约?<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_58_332_Open_Image onclick="this.style.display='none'; Codehighlighter1_58_332_Open_Text.style.display='none'; Codehighlighter1_58_332_Closed_Image.style.display='inline'; Codehighlighter1_58_332_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_58_332_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_58_332_Closed_Text.style.display='none'; Codehighlighter1_58_332_Open_Image.style.display='inline'; Codehighlighter1_58_332_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> HelloEditorPart </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000"> EditPartWithListener </span><span id=Codehighlighter1_58_332_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_58_332_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_114_330_Open_Image onclick="this.style.display='none'; Codehighlighter1_114_330_Open_Text.style.display='none'; Codehighlighter1_114_330_Closed_Image.style.display='inline'; Codehighlighter1_114_330_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_114_330_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_114_330_Closed_Text.style.display='none'; Codehighlighter1_114_330_Open_Image.style.display='inline'; Codehighlighter1_114_330_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> propertyChange(PropertyChangeEvent event) </span><span id=Codehighlighter1_114_330_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_114_330_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> the model of change shows change of the position information on a model -- do thing or not?</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (event.getPropertyName().equals(HelloModel.P_CONSTRAINT))<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>          refreshVisuals(); </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> A view is updated.</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></span><span style="COLOR: #000000">    }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div> <br>q样p改变VIEW了!<br>REQUEST-->POLICY-->COMMAND-->MODEL-->VIEW<br>^_^ <img src ="http://www.aygfsteel.com/hackest/aggbug/124847.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/hackest/" target="_blank">一条辉</a> 2007-06-17 22:19 <a href="http://www.aygfsteel.com/hackest/articles/124847.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UI框架的组l模式【{载?/title><link>http://www.aygfsteel.com/hackest/articles/124094.html</link><dc:creator>一条辉</dc:creator><author>一条辉</author><pubDate>Wed, 13 Jun 2007 14:32:00 GMT</pubDate><guid>http://www.aygfsteel.com/hackest/articles/124094.html</guid><wfw:comment>http://www.aygfsteel.com/hackest/comments/124094.html</wfw:comment><comments>http://www.aygfsteel.com/hackest/articles/124094.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/hackest/comments/commentRss/124094.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/hackest/services/trackbacks/124094.html</trackback:ping><description><![CDATA[UI框架中有很多lgQ很多类Q很多细而繁多的标准Q这些特征得UI框架成ؓ一个业务逻辑和底层代码的复杂无序混合体,对它的类l织方式的研I也显得特别有模式化编E的意义?<br> <strong>   Pattern 1QComposite </strong><br>    几乎所有时下流行的UIlg都会遵@Composite模式Q比如AWT、Swing、Java2D、SWT、JFace、EclipseUI?Draw2D、GEF以及.NET世界的Windows Forms。该模式的大概含义是Q子lg和母lg是同一个类型的。比如一个Button应该是安排在一个Panel上的Q但是Button和Panel可能都是一个Container或者都是一个Composite?<br><strong><br>    Pattern 2Q绘制前l织 </strong><br>    目前公共领域的设计模式还没有可以_的表达这个思\的名词,所以我p做主张,起了个名字,后面的Pattern如果用中文命名,也是q个原因。该模式的大概含义是Q子lg应赶在母lgl制之前自己显式的加入母组件。比如说Q如果Button要承Panel的某个属性(我是指Button要得?Panel的某个知识)Q那么就要赶在绘制之前显式的这个Button对象add到Panel中去。绘制前l织的典型例子是AWT、Swing?Java2D、Draw2d{?<br><br>   <strong> Pattern 3Q构建时l织 </strong><br>    和某U工厂方式相|构徏时组l是在类的构造器上做文章。该模式的大概含义是Q子lg在构建时必ȝ定它属于哪个母组Ӟ以便在后面的操作中与母组件户动。比如Button所有的构徏器都要求传入一个Composite对象作ؓparent。这个模式与上面的Pattern 2完全不同Q其典型例子有SWT、JFace、EclipseUI、GEFQ都是一家的Q?<br><br> <strong>   Pattern 4QMVC</strong> <br>    几乎所有时下流行的UIlg都或多或的使用了MVCQ或不太严格的MVCQ或MVC某个角度的思想。该模式用在UIpȝ上的大概含义是,组件的l制、设|和事g处理分开Q在不同的角色中完成。我在本文所丄所有例子中Q只有GEF实现了严格和完美的MVCQ而AWT、Swing、Java2D{组Ӟ都是由Sun开发或Sun和Netscape合作开发的Q则使用了一个著名的同时也是最Ҏ被搞h的MVC变种。该变种中也有三个角Ԍl图器代理、无知的模型和监听器、原型组件和事g处理Ҏ。而微软的MFC也采用了MVC的另一个著名变U,Document-ViewQ这个变U显然只有两个角艌Ӏ?<br><br>  <strong>  Pattern 5QDelegate </strong><br>    性能和可UL性是一直是UIq_最x的两个问题。性能依靠量的载入c,可移植性则依靠Ҏ多图形库的支持,q两件事都需要将性的l图Ҏ或事件处理方式分d去,交给代理完成。该模式的含义是Q绘囑ַhw不l图Q它只负责决定应该由它的哪个代理完成Qƈ负责Z理绘制图形搜集参数?Eclipse和Sun的主要工具都采用了这一模式Q不同的是Eclipse也在事g处理环节应用了代理模式,因ؓ事g被触发之前没有理由将它的实现d内存Q所以实现应该由代理完成?<br><br>    <strong>Pattern 6QLayer </strong><br>    Eclipse采用了严D完的分层模型Q有严格界限的层ơ至有三个Q分别是org.eclipse.swt, org.eclipse.jface, org.eclipse.ui。其中SWT负责l制单的lgQ提供简单组件的功能。JFace负责l制复杂交互方式的组Ӟ有些JFace的组件包装了 SWT的组Ӟq提供了随组件而走的服务。这两个包都可以在Eclipse以外的^C使用。UI层则完成Eclipseq_的主要UI功能Q很多地Ҏ供了pȝ唯一的服务,q包装了JFace的组件。Draw2D建立在SWT之上Q包装了SWT使其能更好的为绘制二l复杂图形而服务。GEF建立?Draw2D和EclipseUI层的基础之上QؓEclipse Workbench提供某些功能?<br> <img src ="http://www.aygfsteel.com/hackest/aggbug/124094.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/hackest/" target="_blank">一条辉</a> 2007-06-13 22:32 <a href="http://www.aygfsteel.com/hackest/articles/124094.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӯ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">«Ϫ</a>| <a href="http://" target="_blank">ָɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ʊ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ǩ</a>| <a href="http://" target="_blank">γ</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">Ϊ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">÷</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɫ</a>| <a href="http://" target="_blank">˻</a>| <a href="http://" target="_blank">Ȫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ξ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ӣɽ</a>| <a href="http://" target="_blank">ϰ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>