<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Open Java Project

    Keep it simple, Stupid, Less is more

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      20 Posts :: 0 Stories :: 12 Comments :: 0 Trackbacks

    5、FromText控件

    1)概述

    l         雖然使用Label、超鏈接(或圖像鏈接)以及TableWrapLayout布局就能創建豐富的Form內容,但是要接近Web外觀還是很有限的

    l         Eclipse From提供了FromText控件來創建Rich文本,作為上述的補充,有三種形式:

    n         按純文本呈現

    n         將文本中URL轉換為超鏈接呈現

    n         XML標記解析呈現

    2)純文本

    l         下面是按純文本呈現的例子(等同于Label

                  FormText rtext = toolkit.createFormText(body, true);
                  td = new TableWrapData(TableWrapData.FILL);
                  td.colspan = 2;
                  rtext.setLayoutData(td);
                  String data = "Here is some plain text for the text to render.";
                  rtext.setText(data, false, false);

    l         FormToolkitcreateFormText()方法創建FromText控件

    l         FromTextsetText()方法指定要呈現的文本,后面兩個參數指定是否要按XML標記進行解析和是否要將文本中的URL轉換為超鏈接

    3URL轉換為超鏈接

    l         下面是將URL轉換為超鏈接的例子,和上面例子的唯一區別是FromTextsetText()方法的第三個參數設置為True

                  FormText rtext = toolkit.createFormText(body, true);
                  td = new TableWrapData(TableWrapData.FILL);
                  td.colspan = 2;
                  rtext.setLayoutData(td);
                  Display display = FormSamplesPlugin.getDefault().getWorkbench().getDisplay();
                  FormColors formColors = new FormColors(display);
                  Color activeLinkColor = formColors.createColor("activeLink", 175,225,200);
                  HyperlinkSettings linkSettings = new HyperlinkSettings(display);
                  linkSettings.setActiveForeground(activeLinkColor);
                  linkSettings.setHyperlinkUnderlineMode(HyperlinkSettings.UNDERLINE_HOVER);
                  rtext.setHyperlinkSettings(linkSettings);
                  String data = "Here is some plain text for the text to render; this text is at http://www.eclipse.org/ web site.";
                  rtext.setText(data, false, true);
                  rtext.addHyperlinkListener(new HyperlinkAdapter() {
                    public void linkActivated(HyperlinkEvent e) {
                           System.out.println("Link active: "+e.getHref());
                    }
                  });

    l         既然能夠將URL轉換成超鏈接,FromText同樣提供addHyperlinkListener()方法來監聽超鏈接事件

    l         FromText還提供setHyperlinkSettings()方法來設置超鏈接的屬性(注意,要在setText()方法之前設置才有效)

    l         超鏈接的屬性由HyperlinkSettings對象管理,包括顏色和下劃線模式的設置

    l         例中使用了Eclipse From提供的FormColors對象(顏色管理器)來管理顏色,createColor()方法創建一種新的顏色,并提供了key值,以便以后可以使用getColor(key)訪問

    l         這里是使用FormColors的一個簡單例子,通常一個插件應該只有一個顏色管理器(FormColors),可以使用Singlton模式來訪問FormColors對象

    4解析XML標記

    l         解析XML標記是FormText最強大的用法,但是FormText不完全支持所有的標記,下面是FormText支持的標記,而且用法有些不同:

    n         根標記必須是<form>

    n         <form>可以包含<p><li>標記

    n         <p><li>可以包含普通的文本、<br>、<b><span>、圖像(<img>)和超鏈接(<a>

    n         標記不允許嵌套

    n         <p>vspace屬性,表示是否要加垂直空白(缺省是true

    n         <li>有下列屬性:

    u       vspace:同<p>

    u       stylebullet缺省)、textimage值之一

    u       value:當style=bullet時,無效;當style=text時,指定作為bullet的文本;當style=image時,指定作為bullet的圖像(key值)

    u       indentbullet內容縮進的大?。ㄏ袼貫閱挝唬?/SPAN>

    u       bindentbullet自身縮進的大?。ㄏ袼貫閱挝唬?/SPAN>

    n         <img>顯示圖像,其屬性href指定的是一個key值,該值和FormTextsetImage()方法中key參數指定的值是對應的

    n         <a>顯示超鏈接,其屬性href指定URL并通過FormText添加監聽器來監聽超鏈接的點擊事件,<a>還有nowarp屬性,指定是否允許超鏈接自動換行

    n         <b>:使包含的文本變粗體

    n         <br>:強制換行

    n         <span>:使包含的文本具有特定的顏色(color屬性)和字體(font屬性)這些屬性的值也是一個key值,和FormTextsetColor()、setFont()方法中key參數指定的值是對應的

    l         下面是一個解析XML標記的例子:

                  StringBuffer buf = new StringBuffer();
                  buf.append("<form>");
                  buf.append("<p>");
                  buf.append("Here is some plain text for the text to render; ");
                  buf.append("this text is at <a href=\"http://www.eclipse.org\" nowrap=\"true\">http://www.eclipse.org</a> web site.");
                  buf.append("</p>");
                  buf.append("<p>");
                  buf.append("<span color=\"header\" font=\"header\">This text is in header font and color.</span>");
                  buf.append("</p>");
                  buf.append("<p>This line will contain some <b>bold</b> and some <span font=\"text\">source</span> text. ");
                  buf.append("We can also add <img href=\"image\"/> an image. ");
                  buf.append("</p>");
                  buf.append("<li>A default (bulleted) list item.</li>");
                  buf.append("<li>Another bullet list item.</li>");
                  buf.append("<li style=\"text\" value=\"1.\">A list item with text.</li>");
                  buf.append("<li style=\"text\" value=\"2.\">Another list item with text</li>");
                  buf.append("<li style=\"image\" value=\"image\">List item with an image bullet</li>");
                  buf.append("<li style=\"text\" bindent=\"20\" indent=\"40\" value=\"3.\">A list item with text.</li>");
                  buf.append("<li style=\"text\" bindent=\"20\" indent=\"40\" value=\"4.\">A list item with text.</li>");
                  buf.append("</form>");
                  FormText rtext = toolkit.createFormText(body, true);
                  td = new TableWrapData(TableWrapData.FILL);
                  td.colspan = 2;
                  rtext.setLayoutData(td);
                  rtext.setImage("image", FormSamplesPlugin.imageDescriptorFromPlugin("FormSamples","images/aspect.gif").createImage());
                  rtext.setColor("header", toolkit.getColors().getColor(FormColors.TITLE));
                  rtext.setFont("header", JFaceResources.getHeaderFont());
                  rtext.setFont("text", JFaceResources.getTextFont());
                  rtext.setText(buf.toString(), true, false);
                  rtext.addHyperlinkListener(new HyperlinkAdapter() {
                    public void linkActivated(HyperlinkEvent e) {
                           System.out.println("Link active: "+e.getHref());
                    }
                  });

    l         下面是上面例子呈現的內容

     o_1.JPG

    l         就像上面提到的FormTextXML標記的支持是有限的,例如:

    n         標記不能嵌套

    n         只支持粗體(<b>),而不支持斜體

    n         文本內容不能被選取,等等

    l         所以對于FormText的一些限制,需要考慮其它的替代方法:

    n         如果需要具有更為復雜的格式化能力,可以使用Browser控件

    n         如果需要具有編輯和字體、顏色風格的能力,可以使用StyleText控件

    n         如果需要文本能夠自動換行,可以使用具有SWT.WARP風格的SWT Label控件

    posted on 2005-07-04 18:37 nelson_tu 閱讀(2575) 評論(2)  編輯  收藏 所屬分類: Eclipse開發

    Feedback

    # re: Eclipse Form程序設計指南(4)[未登錄] 2008-03-22 18:42 新手
    有沒有master/details模式的呀?  回復  更多評論
      

    # re: Eclipse Form程序設計指南(4)[未登錄] 2008-03-24 15:57 新手
    FormPage里有兩個Master又怎么樣呢  回復  更多評論
      

    主站蜘蛛池模板: 成人片黄网站A毛片免费| 成人免费视频一区二区| 亚洲成a人片在线观看播放| 亚洲Av无码精品色午夜| 亚洲精品狼友在线播放| 亚洲免费人成在线视频观看| 伊伊人成亚洲综合人网7777| 亚洲色欲一区二区三区在线观看| 亚洲中文字幕成人在线| 亚洲自偷自偷偷色无码中文| 亚洲AV无码码潮喷在线观看| 亚洲AV无码精品色午夜果冻不卡| 99久久精品国产亚洲| 亚洲精品视频观看| 亚洲专区一路线二| 亚洲经典千人经典日产| 天天综合亚洲色在线精品| 深夜a级毛片免费无码| av午夜福利一片免费看久久| 免费精品久久天干天干| 免费无码毛片一区二区APP| 亚洲视频免费播放| 性色av无码免费一区二区三区| 超pen个人视频国产免费观看| 亚洲国产成人久久一区WWW| 国产成人麻豆亚洲综合无码精品| 亚洲成AV人片一区二区| 亚洲视频一区二区三区四区| 亚洲AV无码AV吞精久久| 皇色在线免费视频| 午夜视频在线免费观看| 成人免费无码视频在线网站| 国产一区二区视频免费| 国产V亚洲V天堂无码| 亚洲三级视频在线观看| 麻豆亚洲AV成人无码久久精品 | 亚洲无删减国产精品一区| 亚洲另类自拍丝袜第1页| 国产成人综合亚洲一区| 成人A片产无码免费视频在线观看| 亚洲成人免费网站|