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>


Reply via email to