Author: yurize
Date: Thu Aug 2 21:02:40 2012
New Revision: 1368705
URL: http://svn.apache.org/viewvc?rev=1368705&view=rev
Log:
Hightlights the current blip while editing. By Vicente J. Ruiz Jurado.
https://reviews.apache.org/r/5388
Added:
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/focus/BlipEditStatusListener.java
- copied, changed from r1368692,
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/FocusFrameView.java
Modified:
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/edit/EditSession.java
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/focus/FocusFramePresenter.java
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/FocusFrameView.java
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.css
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.java
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.ui.xml
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrameIE.ui.xml
Modified:
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/edit/EditSession.java
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/edit/EditSession.java?rev=1368705&r1=1368704&r2=1368705&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/edit/EditSession.java
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/edit/EditSession.java
Thu Aug 2 21:02:40 2012
@@ -38,6 +38,7 @@ import org.waveprotocol.wave.client.wave
import org.waveprotocol.wave.client.wave.InteractiveDocument;
import org.waveprotocol.wave.client.wavepanel.WavePanel;
import org.waveprotocol.wave.client.wavepanel.impl.WavePanelImpl;
+import
org.waveprotocol.wave.client.wavepanel.impl.focus.BlipEditStatusListener;
import org.waveprotocol.wave.client.wavepanel.impl.focus.FocusFramePresenter;
import org.waveprotocol.wave.client.wavepanel.impl.toolbar.LinkerHelper;
import org.waveprotocol.wave.client.wavepanel.view.BlipView;
@@ -85,19 +86,22 @@ public final class EditSession
private BlipView editing;
/** Editor control. */
private Editor editor;
+ /** Control the focus style on the editing blip **/
+ private final BlipEditStatusListener blipEditStatusListener;
EditSession(ModelAsViewProvider views, DocumentRegistry<? extends
InteractiveDocument> documents,
- LogicalPanel container, SelectionExtractor selectionExtractor) {
+ LogicalPanel container, SelectionExtractor selectionExtractor,
BlipEditStatusListener blipEditStatusListener) {
this.views = views;
this.documents = documents;
this.container = container;
this.selectionExtractor = selectionExtractor;
+ this.blipEditStatusListener = blipEditStatusListener;
}
public static EditSession install(ModelAsViewProvider views,
DocumentRegistry<? extends InteractiveDocument> documents,
SelectionExtractor selectionExtractor, FocusFramePresenter focus,
WavePanelImpl panel) {
- EditSession edit = new EditSession(views, documents, panel.getGwtPanel(),
selectionExtractor);
+ EditSession edit = new EditSession(views, documents, panel.getGwtPanel(),
selectionExtractor, focus);
focus.addListener(edit);
if (panel.hasContents()) {
edit.onInit();
@@ -171,6 +175,7 @@ public final class EditSession
}
});
editor.setEditing(true);
+ blipEditStatusListener.setEditing(true);
editor.focus(false);
editing = blipUi;
selectionExtractor.start(editor);
@@ -186,6 +191,7 @@ public final class EditSession
container.doOrphan(editor.getWidget());
editor.blur();
editor.setEditing(false);
+ blipEditStatusListener.setEditing(false);
// "removeContent" just means detach the editor from the document.
editor.removeContent();
editor.reset();
Copied:
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/focus/BlipEditStatusListener.java
(from r1368692,
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/FocusFrameView.java)
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/focus/BlipEditStatusListener.java?p2=incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/focus/BlipEditStatusListener.java&p1=incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/FocusFrameView.java&r1=1368692&r2=1368705&rev=1368705&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/FocusFrameView.java
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/focus/BlipEditStatusListener.java
Thu Aug 2 21:02:40 2012
@@ -1,5 +1,5 @@
/**
- * Copyright 2010 Google Inc.
+ * Copyright 2012 Apache Wave
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,12 +14,17 @@
* limitations under the License.
*
*/
-package org.waveprotocol.wave.client.wavepanel.view;
+package org.waveprotocol.wave.client.wavepanel.impl.focus;
/**
- * View for a focus frame that highlights the document in a blip.
- *
+ * The listener interface for receiving edit blip focus events.
*/
-public interface FocusFrameView {
+public interface BlipEditStatusListener {
+ /**
+ * Sets the blip editing focus.
+ *
+ * @param editing set if the blip is beeing editing or not.
+ */
+ void setEditing(boolean editing);
}
Modified:
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/focus/FocusFramePresenter.java
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/focus/FocusFramePresenter.java?rev=1368705&r1=1368704&r2=1368705&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/focus/FocusFramePresenter.java
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/impl/focus/FocusFramePresenter.java
Thu Aug 2 21:02:40 2012
@@ -33,7 +33,7 @@ import org.waveprotocol.wave.model.wave.
*
*/
public final class FocusFramePresenter
- implements SourcesEvents<FocusFramePresenter.Listener>,
WavePanelImpl.LifecycleListener {
+ implements BlipEditStatusListener,
SourcesEvents<FocusFramePresenter.Listener>, WavePanelImpl.LifecycleListener {
public interface Listener {
void onFocusMoved(BlipView oldUi, BlipView newUi);
@@ -238,4 +238,13 @@ public final class FocusFramePresenter
public BlipView getFocusedBlip() {
return blip;
}
+
+ /**
+ * Sets the blip style depending on if is editing or not.
+ *
+ * @param editing the new editing
+ */
+ public void setEditing(boolean editing) {
+ view.setEditing(editing);
+ }
}
Modified:
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/FocusFrameView.java
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/FocusFrameView.java?rev=1368705&r1=1368704&r2=1368705&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/FocusFrameView.java
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/FocusFrameView.java
Thu Aug 2 21:02:40 2012
@@ -21,5 +21,5 @@ package org.waveprotocol.wave.client.wav
*
*/
public interface FocusFrameView {
-
+ void setEditing(boolean editing);
}
Modified:
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.css
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.css?rev=1368705&r1=1368704&r2=1368705&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.css
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.css
Thu Aug 2 21:02:40 2012
@@ -19,3 +19,7 @@
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
+
+.editing {
+ border: 3px solid #5590D2;
+}
\ No newline at end of file
Modified:
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.java
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.java?rev=1368705&r1=1368704&r2=1368705&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.java
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.java
Thu Aug 2 21:02:40 2012
@@ -38,6 +38,10 @@ import org.waveprotocol.wave.client.wave
*/
public final class FocusFrame implements FocusFrameView {
+ public interface CssEditingResource extends CssResource {
+ String editing();
+ }
+
@UiTemplate("FocusFrameIE.ui.xml")
interface IeBinder extends UiBinder<DivElement, FocusFrame> {
@@ -118,7 +122,7 @@ public final class FocusFrame implements
}
/** CSS for this widget. */
- public interface Css extends CssResource {
+ public interface Css extends CssEditingResource {
// Button categories
String editorButton();
@@ -168,7 +172,7 @@ public final class FocusFrame implements
}
/** CSS for this widget. */
- public interface Css extends CssResource {
+ public interface Css extends CssEditingResource {
String focus();
}
@@ -177,7 +181,7 @@ public final class FocusFrame implements
Css3Binder INSTANCE = GWT.create(Css3Binder.class);
}
- private static final CssResource css =
+ private static final CssEditingResource css =
UserAgent.isIE() ? IeBinder.res.css() : Css3Binder.res.css();
private static final UiBinder<DivElement, FocusFrame> BINDER =
UserAgent.isIE() ? IeBinder.INSTANCE : Css3Binder.INSTANCE;
@@ -186,6 +190,8 @@ public final class FocusFrame implements
StyleInjector.inject(css.getText(), true);
}
+ @UiField
+ DivElement frame;
private final Element element;
/**
@@ -198,4 +204,14 @@ public final class FocusFrame implements
public Element getElement() {
return element;
}
+
+ @Override
+ public void setEditing(boolean editing) {
+ if (editing) {
+ frame.addClassName(css.editing());
+ }
+ else {
+ frame.removeClassName(css.editing());
+ }
+ }
}
Modified:
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.ui.xml
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.ui.xml?rev=1368705&r1=1368704&r2=1368705&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.ui.xml
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrame.ui.xml
Thu Aug 2 21:02:40 2012
@@ -6,6 +6,6 @@
xmlns:gwt='urn:import:com.google.gwt.user.client.ui'
>
<ui:with field='res'
type='org.waveprotocol.wave.client.wavepanel.view.dom.full.FocusFrame.Css3Binder.Resources'/>
- <div class='{res.css.focus}'>
+ <div ui:field='frame' class='{res.css.focus}'>
</div>
</ui:UiBinder>
Modified:
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrameIE.ui.xml
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrameIE.ui.xml?rev=1368705&r1=1368704&r2=1368705&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrameIE.ui.xml
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/wave/client/wavepanel/view/dom/full/FocusFrameIE.ui.xml
Thu Aug 2 21:02:40 2012
@@ -6,7 +6,7 @@
xmlns:gwt='urn:import:com.google.gwt.user.client.ui'
>
<ui:with field='res'
type='org.waveprotocol.wave.client.wavepanel.view.dom.full.FocusFrame.IeBinder.Resources'/>
- <div>
+ <div ui:field='frame'>
<div class='{res.css.display}'>
<div class='{res.css.northWest}'></div>
<div class='{res.css.north}'></div>