最新的最明顯

2011年9月9日 星期五

GWT示範網站-步驟三:開始建立使用者介面

約分為幾個步驟:
1. 從GWT的widgets小物件與panels面板裏面選出UI介面需要的元素,當然這就需要平常經驗以及閱讀文件的能力,Google提供的文件內容如下
 
最後決定使用底下widgets
  1. a table 存放 stock data→FlexTable可以提供使用者動態增刪表格內容
  2. 兩個新增與刪除按鈕→Button
  3. 一個輸入框→TextBox
  4. 時間同步顯示→Label
  5. 或者自行開發widgets→ Creating Custom Widgets.
需要的panels有隱形的Root panel以及 horizontal panel和 vertical panel
 Root panel為程式元件的動態容器,隱形但卻是必要的,位於任何GWT介面的上層,可以放在body或者任何地方,一個body也可以放置多個Root panel,每一個都有自己的GWT widgets與目的。horizontal panel的目的為放置一個輸入框與按鈕,可以增加股票資訊。至於vertical panel就是要擺進所有的widgets顯示畫面 。

2.在頁面裡嵌入這些程式,因為我們要在網頁上執行,這個範例的html在StockWatcher/war/StockWatcher.html,改變底下幾行

h1股票觀測站


刪除table裡的資料

3.接著就要到GWT JAVA主程式 src/.../../client/StochWatcher.java,
一.放進所有需要的panels與widgets,在
public class StockWatcher裡面,先把private static final兩項刪除加上底下數行
  private VerticalPanel mainPanel = new VerticalPanel();
  private FlexTable stocksFlexTable = new FlexTable();
  private HorizontalPanel addPanel = new HorizontalPanel();
  private TextBox newSymbolTextBox = new TextBox();
  private Button addStockButton = new Button("Add");
  private Label lastUpdatedLabel = new Label(); 
再把onModuleLoad()裡的東西都刪除,這時eclipse會顯示許多紅燈,因為以上的型態都
沒有確定their types are undefined,利用eclipse的功能,對紅燈項目按左鍵,
選擇import EntryPoint(com.google.gwt.core.client.EntryPoint) ...等等,一個個
同樣步驟,紅燈就會熄了。
二.建立股票資訊表格:先設定欄位名稱為代號、價格、變化率、移除等,加在
onModuleLoad()底下
  // Create table for stock data.
    stocksFlexTable.setText(0, 0, "代號");
    stocksFlexTable.setText(0, 1, "價格");
    stocksFlexTable.setText(0, 2, "變化率");
    stocksFlexTable.setText(0, 3, "移除");
三.我們還需要兩個panels來展示widgets,Add Stock panel一個平行的panel包含textbox
和addbotten 。the Main panel則來放置表格,Add Stock panel, and the timestamp,加在
onModuleLoad()裡面
  // Assemble Add Stock panel.
    addPanel.add(newSymbolTextBox);
    addPanel.add(addStockButton);

    // Assemble Main panel.
    mainPanel.add(stocksFlexTable);
    mainPanel.add(addPanel);
    mainPanel.add(lastUpdatedLabel);
 四.把main panel與Root panel做起關聯,因為要把所有widgets與 panels放進html page裡面
,一定要透過Root panel
// Associate the Main panel with the HTML host page.
    RootPanel.get("stockList").add(mainPanel); 
也要import com.google.gwt.user.client.ui.RootPanel;,利用eclipse按左鍵 
五.最後把游標提醒加在input box,以提醒使用者開始輸入資料。
// Move cursor focus to the input box.
    newSymbolTextBox.setFocus(true); 
最後再run as application來測試。 
 
 

2011年9月8日 星期四

GWT示範網站-步驟二,程式流程設計

程式流程設計有兩大主題:函式的檢查與測試以及使用者介面元件
依照Google示範程式的目標,我們想達成
  1. 使用者可以增加或刪除股票
  2. 使用者欄位以及功能按鈕
  3. 更新股價以及漲跌幅度
  4. 時間標記
使用者介面元件需要表格存放資訊,新增與刪除按鈕,一個輸入股票資訊欄位,一個時間標記等。以及代表html畫面的元素,例如logo等
所以GWT的html編輯在 HTML host page裏面,其餘的java元件在GWT提供的設計元素裡。
資料參考http://code.google.com/webtoolkit/doc/latest/tutorial/design.html

Eclipse+GWT建立一個示範專案-步驟一

按照google的示範步驟,http://code.google.com/webtoolkit/doc/latest/tutorial/gettingstarted.html,將會建立一個AJAX application-股票看板。
步驟分為:
  1. 建立一個GWT專案
  2. 程式的設計
  3. 使用者介面設計
  4. 滑鼠等互動式介面設計
  5. 增加程式可用度及彈性
  6. 程式除錯
  7. 畫面CSS與HTML等
  8. 最後的編譯
1. 建立一個GWT專案:在工具列上有一個寫著g+的小圖,點選→New web application project,專案名稱"StockWatcher",package "com.google.gwt.sample.stockwatcher"→確定finish,裏面已經包含專案所需的資料結構及檔案,適當修改就成了專案了。資料結構請參閱http://code.google.com/webtoolkit/doc/latest/tutorial/create.html。
接著可以試著run了,先點選StochWatcher→src→com.google.gwt.sample.stockwatcher.client→StockWatcher.java,
接著就可以run as web application,
最後複製底下結果的http://的內容,約為http://127.0.0.1:8888/StockWatcher.html?gwt.codesvr=127.0.0.1:9997,貼到瀏覽器執行,基本上就得到一個網頁畫面了,如圖,如果瀏覽器不支援,依照上面install步驟安裝後就可以執行了。

2011年9月7日 星期三

Google自訂搜尋,設定與安裝


利用Google自訂搜尋,約分為三種:簡單版、自訂版、複雜程式版
簡單版:Google web elements,http://www.google.com/webelements/#!/custom-search
找到Search(2)→;Custom search→;選擇Themes可自選花樣→;再拷貝程式碼貼到網站位置就成功了。












自訂版:功能強多了,但是設定也複雜。google custom search(CSE)
右上角,create新增或者manage管理調整你的CSE。可以做到:
  1. 自訂搜尋網站們或網域
  2. 搜尋結果顯示方式
  3. 搜尋外框外觀調整
  4. . . . . . .
  • 新增→填上搜尋主題名字,說明與語言(中文吧!)→接著的重點是填上要搜尋的目標,每行一個目標,包含單獨網頁、完全網站(www.xxx.com.tw/*)、完全網域(*.xxx.com.tw/*)→選擇standard edition(含廣告)
  • 接著自訂外觀,有六種,每一種再自訂(customize)
  • 最後同樣複製原始碼,插入到網站適合的位置,就會顯示出來
  • 進一步調整,按下change the basics,左欄就有許多自訂項目,例如切到look and feel項目,就會增加一個choose a layout,其中就可以設定搜尋結果的顯示方式,例如選最後一個google-hosted,再選New window,這樣原來的頁面就還留著,其他請自行測試
  • 左欄多個選項改天再測試分享



2011年9月6日 星期二

Webdav在Ubuntu的安裝與使用

Ubuntu+Apache2+WebDav提供網頁式協同環境,讓使用者直接在apache Server上傳下載與編輯檔案,不用透過Ftp等服務。
步驟:
第一步:apache2環境
$ sudo aptitude install apache2
$ sudo a2enmod dav_fs
$ sudo a2enmod dav
$ sudo service apache2 restart
第二步:
建立Virtual Host,路徑為/var/www/web1/web,設定檔/etc/apache2/site2-available/default
$ sudo mkdir -p /var/www/web1/web
$ sudo chown www-data /var/www/web1/web
$ sudo mv /etc/apache2/sites-available/default  /etc/apache2/sites-available/defaultbackup
$ sudo vi  /etc/apache2/sites-available/default
改成如下
NameVirtualHost *
<VirtualHost *>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/web1/web/
        <Directory /var/www/web1/web/>
                Options Indexes MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>
$ sudo /etc/init.d/apache2 reload
第三步:建立password檔在 /var/www/web1/passwd.dav,使用者例如test
$ sudo htpasswd -c  /var/www/web1/passwd.dav test -->依序打上password
$ sudo chown root:www-data  /var/www/web1/passwd.dav
$ sudo chmod 640 /var/www/web1/passwd.dav
再到 /etc/apache2/site-available/default,加上底下數行
Alias /webdav /var/www/web1/web<br />        <Location /webdav><br />           DAV On<br />           AuthType Basic<br />           AuthName "webdav"<br />           AuthUserFile /var/www/web1/passwd.dav<br />           Require valid-user<br />       </Location><br />
$ service apache2 restart
最後測試:可以本機或遠端,測試機器端記得$ sudo apt-get install cadaver
本機:$ cadaver http://localhost/webdav
遠端:$ cadaver http://server/webdav
Username: test
Password:

完成ok!

遠端連線方式:
Linux->位置->連接到伺服器
Win XP->網路上的芳鄰->新增一個網路位置



2011年8月29日 星期一

網頁中嵌入「Google·地圖」,靜態式

Google Static Maps API 不再需要 Maps API 金鑰!不需要 JavaScript。我們只需建立網址,再將網址放入 <img> 標記中就大功告成了。
Google Static Maps 服務現在支援「自訂標記圖示!
Google Static Maps API 的網址格式如下:

http://maps.google.com/maps/api/staticmap?parameters
位置參數:
  • center(必要)讓地圖鎖定正確位置LatLng(22.662063,120.293001),可以改用代表「地址」 的字串進行指定,例如,「City Hall, New York, NY」地址應該轉換成「City+Hall,New+York,NY」。sensor=false OR true
  • zoom(必要)zoom=0~~~21,center=40.714728,-73.998672&zoom=12&size=400x400&sensor=false
地圖參數:
  • size(必要)最高可達 640 x 640 像素
  • format,接受GIFJPEG 以及 PNG
  • maptype,接受roadmap,satellite,terrain,hibrid,&maptype=roadmap&sensor=true_or_false
  • mobile,&maptype=roadmap&mobile=true&sensor=true_or_false
  • language
功能參數:許多參數 (例如 markerspath 參數) 都可接受多個位置。在這種情況下,請以直立線 (|) 字元分隔位置。回報參數:
  • sensor(必要)true or false