Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
work in progress: changes to Tab view
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Eng committed Sep 19, 2012
1 parent 3dcce36 commit b5b117f
Show file tree
Hide file tree
Showing 13 changed files with 146 additions and 124 deletions.
Expand Up @@ -5,11 +5,11 @@
<ui:style type="org.zanata.webtrans.client.editor.filter.TransFilterView.Styles">
.transFilterTextBox {
margin: 0px;
font-size: 12px;
font-size: 16px;
border: 2px solid #C5C5C5;
border-radius: 3px;
outline: none;
width:388px;
width:440px;
}

.transFilterTextBoxEmpty {
Expand Down
Expand Up @@ -211,6 +211,10 @@ public void showView(MainView viewToShow)
{
display.setDocumentLabel(selectedDocument.getPath(), selectedDocument.getName());
}
else
{
display.setDocumentLabel("", messages.noDocumentSelected());
}
currentDisplayStats = selectedDocumentStats;
translationPresenter.revealDisplay();
searchResultsPresenter.concealDisplay();
Expand All @@ -230,14 +234,7 @@ public void showView(MainView viewToShow)
break;
case Documents:
default:
if (selectedDocument != null)
{
display.setDocumentLabel(selectedDocument.getPath(), selectedDocument.getName());
}
else
{
display.setDocumentLabel("", messages.noDocumentSelected());
}
display.setDocumentLabel("", messages.documentListTitle());
currentDisplayStats = projectStats;
translationPresenter.concealDisplay();
searchResultsPresenter.concealDisplay();
Expand Down Expand Up @@ -356,23 +353,26 @@ public void onSearchAndReplaceClicked()
}

@Override
public void onDocumentListClicked()
public void onEditorClicked()
{
HistoryToken token = HistoryToken.fromTokenString(history.getToken());

if (token.getView().equals(MainView.Documents))
if (!token.getView().equals(MainView.Editor))
{
if (selectedDocument == null)
{
return; // abort if no doc to edit
}
token.setView(MainView.Editor);
history.newItem(token.toTokenString());
}
else
}

@Override
public void onDocumentListClicked()
{

HistoryToken token = HistoryToken.fromTokenString(history.getToken());
if (!token.getView().equals(MainView.Documents))
{
token.setView(MainView.Documents);
history.newItem(token.toTokenString());
}
history.newItem(token.toTokenString());
}

@Override
Expand Down
Expand Up @@ -95,10 +95,10 @@ public interface WebTransMessages extends Messages
@DefaultMessage("No document selected")
String noDocumentSelected();

@DefaultMessage("Project-wide Search and Replace")
@DefaultMessage("Project-wide Search & Replace")
String projectWideSearchAndReplace();

@DefaultMessage("Document list")
@DefaultMessage("Documents")
String documentListTitle();

@DefaultMessage("{0} has quit workspace")
Expand Down Expand Up @@ -452,4 +452,7 @@ public interface WebTransMessages extends Messages
@DefaultMessage("Concurrent edit detected. Reset value for current row. Your change will be lost.")
String concurrentEdit();

@DefaultMessage("Editor")
String editor();

}
@@ -1,23 +1,22 @@
package org.zanata.webtrans.client.service;

import static com.google.common.base.Objects.equal;
import net.customware.gwt.presenter.client.EventBus;

import org.zanata.webtrans.client.events.DocumentSelectionEvent;
import org.zanata.webtrans.client.events.FindMessageEvent;
import org.zanata.webtrans.client.history.HistoryToken;
import org.zanata.webtrans.client.presenter.AppPresenter;
import org.zanata.webtrans.client.presenter.DocumentListPresenter;
import org.zanata.webtrans.client.presenter.MainView;
import org.zanata.webtrans.client.presenter.SearchResultsPresenter;
import org.zanata.webtrans.shared.model.DocumentId;

import com.allen_sauer.gwt.log.client.Log;
import com.google.common.base.Objects;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.inject.Inject;
import com.google.inject.Singleton;

import net.customware.gwt.presenter.client.EventBus;
import static com.google.common.base.Objects.equal;

/**
* @author Patrick Huang <a href="mailto:pahuang@redhat.com">pahuang@redhat.com</a>
*/
Expand Down Expand Up @@ -79,14 +78,6 @@ private void processForAppPresenter(HistoryToken token)
}
Log.info("[gwt-history] document id: " + docId);

// if there is no valid document, don't show the editor
// default to document list instead
if (docId == null && token.getView() == MainView.Editor)
{
Log.warn("[gwt-history] access editor view with invalid document id. Showing document list view instead");
token.setView(MainView.Documents);
}

if (docId != null)
{
eventBus.fireEvent(new DocumentSelectionEvent(docId, token.getSearchText()));
Expand Down
Expand Up @@ -6,7 +6,7 @@

<ui:style>
.nav-button {
padding:0 6px 1px 6px;
padding:0 6px;
font-size:14px;
margin:0;
}
Expand Down
@@ -1,10 +1,9 @@
package org.zanata.webtrans.client.view;

import net.customware.gwt.presenter.client.widget.WidgetDisplay;

import org.zanata.common.TranslationStats;
import org.zanata.webtrans.client.presenter.MainView;
import com.google.gwt.event.dom.client.HasClickHandlers;

import net.customware.gwt.presenter.client.widget.WidgetDisplay;

/**
* @author Patrick Huang <a href="mailto:pahuang@redhat.com">pahuang@redhat.com</a>
Expand Down Expand Up @@ -45,5 +44,7 @@ interface Listener
void onKeyShortcutsClicked();

void onResizeClicked();

void onEditorClicked();
}
}
109 changes: 52 additions & 57 deletions zanata-war/src/main/java/org/zanata/webtrans/client/view/AppView.java
Expand Up @@ -36,6 +36,7 @@
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.dom.client.StyleInjector;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
Expand All @@ -44,6 +45,7 @@
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.LayoutPanel;
import com.google.gwt.user.client.ui.TabLayoutPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;

Expand All @@ -64,35 +66,35 @@ interface Styles extends CssResource
TransUnitCountBar translationStatsBar;

@UiField
InlineLabel projectLink, iterationFilesLink, resize, keyShortcuts;
InlineLabel projectLink, iterationFilesLink, readOnlyLabel, resize, keyShortcuts;

@UiField
InlineLabel readOnlyLabel, searchAndReplace, documentList;

@UiField
SpanElement selectedDocumentSpan, selectedDocumentPathSpan;

@UiField
LayoutPanel editorContainer, sideMenuContainer, rootContainer;
LayoutPanel sideMenuContainer, rootContainer;

@UiField(provided = true)
final Resources resources;

@UiField
TabLayoutPanel contentBody;

@UiField
Styles style;

private Listener listener;

// TODO may be able to make these provided=true widgets
private Widget documentListView;
private Widget translationView;
private Widget searchResultsView;

private final WebTransMessages messages;

private final static String STYLE_MAXIMIZE = "icon-resize-full-3";
private final static String STYLE_MINIMIZE = "icon-resize-small-2";

// Order of the tab
private final static int DOCUMENT_VIEW = 0;
private final static int EDITOR_VIEW = 1;
private final static int SEARCH_AND_REPLACE_VIEW = 2;

@Inject
public AppView(Resources resources, WebTransMessages messages, DocumentListPresenter.Display documentListView, SearchResultsPresenter.Display searchResultsView, TranslationPresenter.Display translationView, SideMenuPresenter.Display sideMenuView, final Identity identity)
{
Expand All @@ -111,26 +113,27 @@ public AppView(Resources resources, WebTransMessages messages, DocumentListPrese
readOnlyLabel.setText("[" + messages.readOnly() + "]");

keyShortcuts.setTitle(messages.availableKeyShortcutsTitle());
searchAndReplace.setTitle(messages.projectWideSearchAndReplace());
documentList.setTitle(messages.documentListTitle());

resize.setTitle(messages.maximize());
resize.addStyleName(STYLE_MAXIMIZE);

this.searchResultsView = searchResultsView.asWidget();
this.editorContainer.add(this.searchResultsView);
sideMenuContainer.add(sideMenuView.asWidget());

this.translationView = translationView.asWidget();
this.editorContainer.add(this.translationView);
InlineLabel searchAndReplaceTab = new InlineLabel();
searchAndReplaceTab.addStyleName("icon-search");
searchAndReplaceTab.setText(messages.projectWideSearchAndReplace());

this.documentListView = documentListView.asWidget();
this.editorContainer.add(this.documentListView);
InlineLabel documentListTab = new InlineLabel();
documentListTab.addStyleName("icon-list");
documentListTab.setText(messages.documentListTitle());

sideMenuContainer.add(sideMenuView.asWidget());
InlineLabel editorTab = new InlineLabel();
editorTab.addStyleName("icon-edit");
editorTab.setText(messages.editor());

setWidgetVisible(this.documentListView, false);
setWidgetVisible(this.searchResultsView, false);
setWidgetVisible(this.translationView, false);
contentBody.add(documentListView.asWidget(), documentListTab);
contentBody.add(translationView.asWidget(), editorTab);
contentBody.add(searchResultsView.asWidget(), searchAndReplaceTab);

Window.enableScrolling(false);
}
Expand All @@ -141,41 +144,24 @@ public Widget asWidget()
return this;
}


@Override
public void showInMainView(MainView view)
{
switch (view)
{
case Documents:
setWidgetVisible(documentListView, true);
setWidgetVisible(searchResultsView, false);
setWidgetVisible(translationView, false);
contentBody.selectTab(DOCUMENT_VIEW);
break;
case Search:
setWidgetVisible(documentListView, false);
setWidgetVisible(searchResultsView, true);
setWidgetVisible(translationView, false);
contentBody.selectTab(SEARCH_AND_REPLACE_VIEW);
break;
case Editor:
setWidgetVisible(documentListView, false);
setWidgetVisible(searchResultsView, false);
setWidgetVisible(translationView, true);
contentBody.selectTab(EDITOR_VIEW);
break;
}
}

private void setWidgetVisible(Widget widget, boolean visible)
{
if (visible)
{
editorContainer.setWidgetTopBottom(widget, 0, Unit.PX, 0, Unit.PX);
}
else
{
editorContainer.setWidgetTopHeight(widget, 0, Unit.PX, 0, Unit.PX);
}
}

@Override
public void setProjectLinkLabel(String workspaceNameLabel)
{
Expand Down Expand Up @@ -255,12 +241,12 @@ public void showSideMenu(boolean isShowing)
rootContainer.forceLayout();
if (isShowing)
{
rootContainer.setWidgetLeftRight(editorContainer, 0.0, Unit.PX, MINIMISED_EDITOR_RIGHT, Unit.PX);
rootContainer.setWidgetLeftRight(contentBody, 0.0, Unit.PX, MINIMISED_EDITOR_RIGHT, Unit.PX);
rootContainer.setWidgetRightWidth(sideMenuContainer, 0.0, Unit.PX, EXPENDED_MENU_RIGHT, Unit.PX);
}
else
{
rootContainer.setWidgetLeftRight(editorContainer, 0.0, Unit.PX, 0.0, Unit.PX);
rootContainer.setWidgetLeftRight(contentBody, 0.0, Unit.PX, 0.0, Unit.PX);
rootContainer.setWidgetRightWidth(sideMenuContainer, 0.0, Unit.PX, MIN_MENU_WIDTH, Unit.PX);
}
rootContainer.animate(ANIMATE_DURATION);
Expand All @@ -278,18 +264,6 @@ public void onIterationFilesLinkClick(ClickEvent event)
listener.onIterationFilesLinkClicked();
}

@UiHandler("searchAndReplace")
public void onSearchAndReplaceClick(ClickEvent event)
{
listener.onSearchAndReplaceClicked();
}

@UiHandler("documentList")
public void onDocumentListIconClick(ClickEvent event)
{
listener.onDocumentListClicked();
}

@UiHandler("keyShortcuts")
public void onKeyShortcutsIconClick(ClickEvent event)
{
Expand All @@ -302,4 +276,25 @@ public void onResizeIconClick(ClickEvent event)
listener.onResizeClicked();
}

@UiHandler("contentBody")
public void onSelectionChanged(SelectionEvent<Integer> event)
{
if (listener != null)
{
switch (event.getSelectedItem())
{
case SEARCH_AND_REPLACE_VIEW:
listener.onSearchAndReplaceClicked();
break;
case DOCUMENT_VIEW:
listener.onDocumentListClicked();
break;
case EDITOR_VIEW:
listener.onEditorClicked();
break;
}
}

}

}

0 comments on commit b5b117f

Please sign in to comment.