Show side A in CodeMirrorDemo.
Previously only showed side B. Updated demo to show both side A and B, on top of each other. Change-Id: I3d9c4adbecbf8b84292d838a28dec57baa7ed97c
This commit is contained in:
		@@ -19,9 +19,11 @@ import com.google.gerrit.client.rpc.GerritCallback;
 | 
			
		||||
import com.google.gerrit.client.rpc.ScreenLoadCallback;
 | 
			
		||||
import com.google.gerrit.client.ui.Screen;
 | 
			
		||||
import com.google.gerrit.reviewdb.client.PatchSet;
 | 
			
		||||
import com.google.gwt.dom.client.Element;
 | 
			
		||||
import com.google.gwt.event.logical.shared.ResizeEvent;
 | 
			
		||||
import com.google.gwt.event.logical.shared.ResizeHandler;
 | 
			
		||||
import com.google.gwt.event.shared.HandlerRegistration;
 | 
			
		||||
import com.google.gwt.user.client.DOM;
 | 
			
		||||
import com.google.gwt.user.client.Window;
 | 
			
		||||
import com.google.gwt.user.client.ui.FlowPanel;
 | 
			
		||||
 | 
			
		||||
@@ -36,7 +38,8 @@ public class CodeMirrorDemo extends Screen {
 | 
			
		||||
  private final String path;
 | 
			
		||||
 | 
			
		||||
  private FlowPanel editorContainer;
 | 
			
		||||
  private CodeMirror cm;
 | 
			
		||||
  private CodeMirror cmA;
 | 
			
		||||
  private CodeMirror cmB;
 | 
			
		||||
  private HandlerRegistration resizeHandler;
 | 
			
		||||
 | 
			
		||||
  public CodeMirrorDemo(
 | 
			
		||||
@@ -87,41 +90,61 @@ public class CodeMirrorDemo extends Screen {
 | 
			
		||||
  @Override
 | 
			
		||||
  public void onShowView() {
 | 
			
		||||
    super.onShowView();
 | 
			
		||||
    cm.refresh();
 | 
			
		||||
    cmA.refresh();
 | 
			
		||||
    cmB.refresh();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
  protected void onUnload() {
 | 
			
		||||
    super.onUnload();
 | 
			
		||||
 | 
			
		||||
    if (resizeHandler != null) {
 | 
			
		||||
      resizeHandler.removeHandler();
 | 
			
		||||
      resizeHandler = null;
 | 
			
		||||
    }
 | 
			
		||||
    if (cm != null) {
 | 
			
		||||
      cm.getWrapperElement().removeFromParent();
 | 
			
		||||
      cm = null;
 | 
			
		||||
    if (cmA != null) {
 | 
			
		||||
      cmA.getWrapperElement().removeFromParent();
 | 
			
		||||
      cmA = null;
 | 
			
		||||
    }
 | 
			
		||||
    if (cmB != null) {
 | 
			
		||||
      cmB.getWrapperElement().removeFromParent();
 | 
			
		||||
      cmB = null;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private void display(DiffInfo diff) {
 | 
			
		||||
    cmA = displaySide(diff.meta_a(), diff.text_a());
 | 
			
		||||
    cmB = displaySide(diff.meta_b(), diff.text_b());
 | 
			
		||||
    resizeHandler = Window.addResizeHandler(new ResizeHandler() {
 | 
			
		||||
      @Override
 | 
			
		||||
      public void onResize(ResizeEvent event) {
 | 
			
		||||
        if (cmA != null) {
 | 
			
		||||
          cmA.setHeight(event.getHeight() - HEADER_FOOTER);
 | 
			
		||||
          cmA.refresh();
 | 
			
		||||
        }
 | 
			
		||||
        if (cmB != null) {
 | 
			
		||||
          cmB.setHeight(event.getHeight() - HEADER_FOOTER);
 | 
			
		||||
          cmB.refresh();
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private CodeMirror displaySide(DiffInfo.FileMeta meta, String contents) {
 | 
			
		||||
    if (meta == null) {
 | 
			
		||||
      return null; // TODO: Handle empty contents
 | 
			
		||||
    }
 | 
			
		||||
    Configuration cfg = Configuration.create()
 | 
			
		||||
      .set("readOnly", true)
 | 
			
		||||
      .set("lineNumbers", true)
 | 
			
		||||
      .set("tabSize", 2)
 | 
			
		||||
      .set("mode", getContentType(diff.meta_b()))
 | 
			
		||||
      .set("value", diff.text_b());
 | 
			
		||||
 | 
			
		||||
    cm = CodeMirror.create(editorContainer.getElement(), cfg);
 | 
			
		||||
      .set("mode", getContentType(meta))
 | 
			
		||||
      .set("value", contents);
 | 
			
		||||
    Element child = DOM.createDiv();
 | 
			
		||||
    editorContainer.getElement().appendChild(child);
 | 
			
		||||
    final CodeMirror cm = CodeMirror.create(child, cfg);
 | 
			
		||||
    cm.setWidth("100%");
 | 
			
		||||
    cm.setHeight(Window.getClientHeight() - HEADER_FOOTER);
 | 
			
		||||
    resizeHandler = Window.addResizeHandler(new ResizeHandler() {
 | 
			
		||||
      @Override
 | 
			
		||||
      public void onResize(ResizeEvent event) {
 | 
			
		||||
        cm.setHeight(event.getHeight() - HEADER_FOOTER);
 | 
			
		||||
        cm.refresh();
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
    return cm;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private static String getContentType(DiffInfo.FileMeta meta) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user