/** * 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.dom; import com.google.gwt.dom.client.Element; import org.waveprotocol.wave.client.wavepanel.view.AnchorView; import org.waveprotocol.wave.client.wavepanel.view.BlipMenuItemView; import org.waveprotocol.wave.client.wavepanel.view.BlipMetaView; import org.waveprotocol.wave.client.wavepanel.view.BlipView; import org.waveprotocol.wave.client.wavepanel.view.ContinuationIndicatorView; import org.waveprotocol.wave.client.wavepanel.view.ConversationView; import org.waveprotocol.wave.client.wavepanel.view.InlineConversationView; import org.waveprotocol.wave.client.wavepanel.view.InlineThreadView; import org.waveprotocol.wave.client.wavepanel.view.ParticipantView; import org.waveprotocol.wave.client.wavepanel.view.ParticipantsView; import org.waveprotocol.wave.client.wavepanel.view.ReplyBoxView; import org.waveprotocol.wave.client.wavepanel.view.RootThreadView; import org.waveprotocol.wave.client.wavepanel.view.TopConversationView; /** * Exposes DOM elements as views. * */ public interface DomAsViewProvider { /** @return {@code source} exposed as a blip. */ BlipView asBlip(Element source); /** @return {@code source} exposed as the meta section of a blip. */ BlipMetaView asBlipMeta(Element source); /** @return {@code source} exposed as an item in a blip menu. */ BlipMenuItemView asBlipMenuItem(Element source); /** @return {@code source} exposed as an inline thread. */ InlineThreadView asInlineThread(Element source); /** @return {@code source} exposed as an inline thread indicator. */ ContinuationIndicatorView asContinuationIndicator(Element source); /** @return the inline thread that surrounds the toggle {@code source}. */ InlineThreadView fromToggle(Element source); /** @return {@code source} exposed as a root thread. */ RootThreadView asRootThread(Element source); /** @return {@code source} exposed as a reply box. */ ReplyBoxView asReplyBox(Element source); /** @return {@code source} exposed as a participant view. */ ParticipantView asParticipant(Element source); /** @return {@code source} exposed as a participants view. */ ParticipantsView asParticipants(Element source); /** @return the participants view that surrounds the button {@code source}. */ ParticipantsView fromAddButton(Element source); /** @return {@code source} exposed as a top-conversation view. */ TopConversationView asTopConversation(Element source); /** @return {@code source} exposed as an inline conversation view. */ InlineConversationView asInlineConversation(Element source); /** @return {@code source} exposed as a thread anchor. */ AnchorView asAnchor(Element source); /** @return {@code source} exposed as a conversation view. */ ConversationView asConversation(Element e); // etc. }