/** * Copyright 2010 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package org.waveprotocol.wave.client.wavepanel.view.fake; import org.waveprotocol.wave.client.common.util.LinkedSequence; import org.waveprotocol.wave.client.wavepanel.view.AnchorView; import org.waveprotocol.wave.client.wavepanel.view.BlipMetaView; import org.waveprotocol.wave.client.wavepanel.view.BlipView; import org.waveprotocol.wave.client.wavepanel.view.FocusFrameView; import org.waveprotocol.wave.model.conversation.ConversationThread; import java.util.Set; /** * Fake, pojo implementation of a blip meta view. * */ public final class FakeBlipMetaView implements BlipMetaView { private final FakeRenderer renderer; private final FakeBlipView container; private final LinkedSequence<AnchorView> anchors = LinkedSequence.create(); private FakeDocumentView content; FakeBlipMetaView(FakeRenderer renderer, FakeBlipView container) { this.renderer = renderer; this.container = container; } @Override public Type getType() { return Type.META; } @Override public BlipView getParent() { return container; } @Override public AnchorView getInlineAnchorBefore(AnchorView ref) { return anchors.getPrevious(ref); } @Override public AnchorView getInlineAnchorAfter(AnchorView ref) { return anchors.getNext(ref); } @Override public void insertInlineAnchorBefore(AnchorView ref, AnchorView x) { anchors.insertBefore(ref, x); } @Override public void remove() { container.removeChild(this); } public FakeAnchor createInlineAnchorBefore(AnchorView ref, ConversationThread thread) { FakeAnchor anchor = renderer.createInlineAnchor(thread); anchor.setContainer(this); insertInlineAnchorBefore(ref, anchor); return anchor; } void removeChild(FakeInlineThreadView thread) { // Ignore } public void setContent(FakeDocumentView content) { this.content = content; } // // Uninteresting. // @Override public void placeFocusFrame(FocusFrameView frame) { } @Override public void removeFocusChrome(FocusFrameView frame) { } @Override public void setAvatar(String avatar) { } @Override public void setTime(String time) { } @Override public void setMetaline(String metaline) { } @Override public void setRead(boolean read) { } @Override public void enable(Set<MenuOption> options) { } @Override public void disable(Set<MenuOption> options) { } @Override public void select(MenuOption option) { } @Override public void deselect(MenuOption option) { } @Override public String toString() { return "Meta [" // + "content: " + content // + (anchors.isEmpty() ? "" : ", anchors: " + anchors.toString()) // + "]"; } }