From 5f84c536812730ed581af5f8523d1676f1966fba Mon Sep 17 00:00:00 2001 From: krasimir Date: Thu, 7 Oct 2010 14:09:08 +0000 Subject: [PATCH] dummy UI for documents saving/loading in the editor --- .../ui/gwt/client/DocumentsPanel.java | 56 ++++++++++++++++++ .../ui/gwt/client/EditorApp.java | 34 ++++++++++- .../ui/gwt/client/TextInputPanel.java | 17 +++++- .../ui/gwt/public/Editor.css | 34 ++++++++++- .../ui/gwt/public/textinput-buttons.png | Bin 518 -> 1171 bytes 5 files changed, 135 insertions(+), 6 deletions(-) create mode 100644 src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/DocumentsPanel.java diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/DocumentsPanel.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/DocumentsPanel.java new file mode 100644 index 000000000..1cdd99700 --- /dev/null +++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/DocumentsPanel.java @@ -0,0 +1,56 @@ +package org.grammaticalframework.ui.gwt.client; + +import java.util.*; +import com.google.gwt.user.client.*; +import com.google.gwt.user.client.ui.*; +import com.google.gwt.http.client.*; +import com.google.gwt.xml.client.*; +import com.google.gwt.event.logical.shared.*; +import com.google.gwt.event.dom.client.*; + +public class DocumentsPanel extends Composite { + + private PGFWrapper pgf; + private FlexTable table; + + public DocumentsPanel(PGFWrapper pgf) { + this.pgf = pgf; + + VerticalPanel documentsPanel = new VerticalPanel(); + documentsPanel.setStylePrimaryName("my-DocumentsFrame"); + + Label header = new Label("Documents"); + header.setStylePrimaryName("my-DocumentsHeader"); + documentsPanel.add(header); + + table = new FlexTable(); + table.setStylePrimaryName("my-DocumentsTable"); + documentsPanel.add(table); + + addRow(0, "Test0"); + addRow(1, "Test1"); + addRow(2, "Test2"); + addRow(3, "Test3"); + + table.addClickHandler(new ClickHandler() { + public void onClick(ClickEvent event) { + HTMLTable.Cell cell = table.getCellForEvent(event); + if (cell != null) { + int row = cell.getRowIndex(); + selectRow(row); + } + } + }); + + initWidget(documentsPanel); + setStylePrimaryName("my-DocumentsPanel"); + } + + private void addRow(int row, String text) { + table.setText(row, 0, text); + table.getRowFormatter().addStyleName(row, "row"); + } + + private void selectRow(int row) { + } +} diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/EditorApp.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/EditorApp.java index 107e2c6cd..30e1cd896 100644 --- a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/EditorApp.java +++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/EditorApp.java @@ -19,6 +19,7 @@ public class EditorApp implements EntryPoint { protected Widget translatePanel; protected BrowsePanel browsePanel; protected QueryPanel queryPanel; + protected DocumentsPanel documentsPanel; protected StatusPopup statusPopup; protected TextInputPanel textPanel; protected FridgeBagPanel bagPanel; @@ -217,6 +218,7 @@ public class EditorApp implements EntryPoint { translatePanel = createTranslatePanel(); browsePanel = createBrowsePanel(); queryPanel = createQueryPanel(); + documentsPanel = createDocumentsPanel(); VerticalPanel vPanel = new VerticalPanel(); vPanel.setWidth("100%"); @@ -318,13 +320,29 @@ public class EditorApp implements EntryPoint { return new QueryPanel(pgf); } + protected DocumentsPanel createDocumentsPanel() { + return new DocumentsPanel(pgf); + } + protected Widget createLinksPanel(final Panel parent) { HorizontalPanel linksPanel = new HorizontalPanel(); linksPanel.setStylePrimaryName("my-LinksPanel"); + Hyperlink documentsLink = new Hyperlink("Documents", "documents"); + documentsLink.addClickListener(new ClickListener() { + public void onClick(Widget sender) { + parent.remove(browsePanel); + parent.remove(queryPanel); + parent.remove(translatePanel); + parent.add(documentsPanel); + } + }); + linksPanel.add(documentsLink); + Hyperlink translateLink = new Hyperlink("Translate", "translate"); translateLink.addClickListener(new ClickListener() { public void onClick(Widget sender) { + parent.remove(documentsPanel); parent.remove(browsePanel); parent.remove(queryPanel); parent.add(translatePanel); @@ -335,6 +353,7 @@ public class EditorApp implements EntryPoint { Hyperlink queryLink = new Hyperlink("Query", "query"); queryLink.addClickListener(new ClickListener() { public void onClick(Widget sender) { + parent.remove(documentsPanel); parent.remove(translatePanel); parent.remove(browsePanel); parent.add(queryPanel); @@ -345,6 +364,7 @@ public class EditorApp implements EntryPoint { Hyperlink browseLink = new Hyperlink("Browse", "browse"); browseLink.addClickListener(new ClickListener() { public void onClick(Widget sender) { + parent.remove(documentsPanel); parent.remove(translatePanel); parent.remove(queryPanel); parent.add(browsePanel); @@ -379,15 +399,23 @@ public class EditorApp implements EntryPoint { } public void onHistoryChanged(String token) { - if (token.equals("translate")) { + if (token.equals("documents")) { + parent.add(documentsPanel); + parent.remove(translatePanel); parent.remove(queryPanel); parent.remove(browsePanel); + } else if (token.equals("translate")) { + parent.remove(documentsPanel); parent.add(translatePanel); - } else if (token.equals("query")) { - parent.remove(translatePanel); + parent.remove(queryPanel); parent.remove(browsePanel); + } else if (token.equals("query")) { + parent.remove(documentsPanel); + parent.remove(translatePanel); parent.add(queryPanel); + parent.remove(browsePanel); } else if (token.equals("browse")) { + parent.remove(documentsPanel); parent.remove(translatePanel); parent.remove(queryPanel); parent.add(browsePanel); diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/TextInputPanel.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/TextInputPanel.java index cfaec4f03..2a70e4d02 100644 --- a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/TextInputPanel.java +++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/TextInputPanel.java @@ -71,7 +71,7 @@ public class TextInputPanel extends Composite implements Focusable, HasValueChan toolbar.setCellVerticalAlignment(buttons,HorizontalPanel.ALIGN_MIDDLE); Image clearButton = new Image("org.grammaticalframework.ui.gwt.EditorApp/textinput-buttons.png",0,0,20,20); - clearButton.setTitle("Clears the whole text."); + clearButton.setTitle("Clears the whole document."); clearButton.setStylePrimaryName("button"); clearButton.addClickListener(new ClickListener () { public void onClick(Widget sender) { @@ -80,7 +80,17 @@ public class TextInputPanel extends Composite implements Focusable, HasValueChan }); buttons.add(clearButton); - Image deleteLastButton = new Image("org.grammaticalframework.ui.gwt.EditorApp/textinput-buttons.png",20,0,20,20); + Image saveButton = new Image("org.grammaticalframework.ui.gwt.EditorApp/textinput-buttons.png",20,0,20,20); + saveButton.setTitle("Save the document."); + saveButton.setStylePrimaryName("button"); + saveButton.addClickListener(new ClickListener () { + public void onClick(Widget sender) { + save(); + } + }); + buttons.add(saveButton); + + Image deleteLastButton = new Image("org.grammaticalframework.ui.gwt.EditorApp/textinput-buttons.png",40,0,20,20); deleteLastButton.setTitle("Removes the last word."); deleteLastButton.setStylePrimaryName("button"); deleteLastButton.addClickListener(new ClickListener () { @@ -160,6 +170,9 @@ public class TextInputPanel extends Composite implements Focusable, HasValueChan tempPanel = null; fireValueChange(); } + + public void save() { + } public void addMagnet(Magnet magnet) { Label wordLabel = new Label(magnet.getText()); diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Editor.css b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Editor.css index 2b876160e..233255ade 100644 --- a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Editor.css +++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Editor.css @@ -1,4 +1,36 @@ -/** Add css rules here for your application. */ +.my-DocumentsPanel { + padding: 1em; + width: 100%; +} + +.my-DocumentsFrame { + width: 100%; +} + +.my-DocumentsHeader { + width: 100%; + background-attachement: scroll; + background-color: #E5E5E5; + background-image: url("background.png"); + background-position: 0px -192px; + background-repeat: repeat-x; + font-size: 150%; +} + +.my-DocumentsTable { + width: 100%; + border: 1px solid #E5E5E5; + border-collapse: collapse; +} + +.my-DocumentsTable .row td { + cursor:pointer; + border: 1px solid #E5E5E5; +} + +.my-DocumentsTable .row:hover { + background-color: rgb(147, 194, 241); +} .my-TranslatePanel { padding-top: 1em; diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/textinput-buttons.png b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/textinput-buttons.png index 46029f34e0e3b646dd7cae6a5b218246e6c48722..9f6017f7080823cf79012b0380a8df5a9110c290 100644 GIT binary patch literal 1171 zcmeAS@N?(olHy`uVBq!ia0y~yV6b6eU=ZP8V_;yo$Q-B1z`zpa>Eaj?(Ykf|`TUSj zk>mEy@4e*FD#^&5!ok&fY1*~Cgo94PM_W60EbtW1YT{HAaur_UR<5%4KZ6d>#0(`p z9zkDT?lltxj<&RRsOe=iPB2MQ`Oz%Tt2_7m<9+2Zd%~^eRvMr4d23#|^ZQ--=kw0n zem`FAv?@9Iu~&0dX2$L-tMvm;h_?5&XB7o(f7+x{^yH6an%|qK^o_=1*5#9DuM3<% z>)OVRg=<3uLPTHQEEeB#?}>=U6FDiXmF<4_1NJ{z{oeG$l$yCS=Urq@4&GJvJ3MO1 zj+K+ooqPJ=%+=L7*{Aj1zpR^a!0em5 ziyQbCAD+B<`8OVh?NYDqw7g=v9u)q(wncj0={7NEO)(Xt4#8jZ-{hZI#w{C{Qy2jDf)!^ozL|Wm+`v}BXmPXUHkU3#{@pwN>lR)AIsd$V)&5WZEMb9Hmnqe}d@u2* z!tT&it#(1RhI95(gQyeVzkW4MF)tEq3@(@{?jWXf zVDSNilTXd(O#8}ofB8=(Z`M4Q#^3-~ml-o=WUTPd_t)2BTls7)EBA-GS^K6hlV`ra z^k?pYr(VgYnPjvC)PJUZ+tBU!Xw|By4WG5z>x5^hHSV2adTtZLZi$e@&yCR?4W8Sd z{JA#g{z4^zqXODT^bV!Wj^>}kT(`#fiTZ))1AkQ}PvYdhB9)xEiLFTNldn(uJ+;3% zTixXuq8s%aL?vT)dwzQ(`@ne8@1F^43#X|bVpHgSb2VPddZ~HdOGnkum#a;D-5VYs zIIVJ8>_O!N5347CjOMX@Tl)2INJeCXtC(EF;pUT$ks2ZqTeC!EWo1iBN;Xt|&AN5_ z_RCw9V#)&7|6P>uy(~D%gP%$6D#Bl!cP{)dAK@6_a&XGg*Do$E&ZsKt z@97CC7520V_w@V0)4S|t%@X#;aL;w~PF=2;!4na|mLOdfvA^ZXEd!Sh?!tYKzxCe! zev2i};Q{LpRr&pA-D5gR?WC$Q9waXk@V?f5P3gsCmH9KiZdto&f$9Sbw&2G*jP)Ft z>@$}bs&N%IF1``BNBrRhe&H824fm%pcnLTNG;kYEbe^D5-Qs%Tyvgfo?*mUa6dv7c zS)6oz*UBH4?d9&@X+Bcf!_BdGf~@{Kh4>SjKQ&HeDdt>}Zd;@_-Dgs~Q*HnKy1i%a zUjAJseP*teUe6|mdsC+ES)#3+yU}>_TXtoviq z$XlD{zkl=Xgmv6SxhwajW(t0o9$$ZZ(nR-bHZ}VB8;iUCnO0|=Z&)-t>(AE^PXQgX oO*gEYVuYVmd7t~!{*Sfh#0$w~N_lq}7#J8lUHx3vIVCg!0Me2vx&QzG literal 518 zcmeAS@N?(olHy`uVBq!ia0y~yV9;P-U=ZP8V_;zT?^eH?fr0U?r;B5VN9W$D`}J8I zMULB-Th8%1q^ehUH`JpS%9^Uos+&Gbxu(rtvucz4`waOHQ$Bi$Tr%vsa{ZH_yvpRWGxbi(vM)1rdb*Y2 z>;vtqrWXWWmNHASe{%3q54$O3{qozpw&l;I4?V1&6@ANN?UK2t?y5grbihF1!v{tw z)psx7DJ_YZJ9ob2!CbE$feG?6TvJNoB5!l9VVZoPx%80n0!%iZ ztzeF7II6^QH-7z+oaqg9>o;y;SX*#(k@jSj`wQ+Ry_A@0@!|2pO)FHIZ(CPK`OR9? eThEld+~1nBH*f{RT6P8o1_n=8KbLh*2~7a+^5nq)