/*******************************************************************************
* Copyright (c) 2016 Weasis Team and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Nicolas Roduit - initial API and implementation
*******************************************************************************/
package org.weasis.core.ui.editor.image;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.FocusListener;
import java.awt.event.KeyListener;
import java.awt.geom.Point2D;
import java.beans.PropertyChangeListener;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import javax.swing.Action;
import javax.swing.ImageIcon;
import org.weasis.core.api.gui.Image2DViewer;
import org.weasis.core.api.image.OpManager;
import org.weasis.core.api.media.data.ImageElement;
import org.weasis.core.api.media.data.MediaSeries;
import org.weasis.core.ui.model.layer.LayerAnnotation;
import org.weasis.core.ui.model.utils.ImageLayerChangeListener;
import org.weasis.core.ui.model.utils.bean.PanPoint;
public interface ViewCanvas<E extends ImageElement>
extends Canvas, Image2DViewer<E>, PropertyChangeListener, FocusListener, ImageLayerChangeListener<E>, KeyListener {
public static final String ZOOM_TYPE_CMD = "zoom.type"; //$NON-NLS-1$
public static final ImageIcon SYNCH_ICON = new ImageIcon(DefaultView2d.class.getResource("/icon/22x22/synch.png")); //$NON-NLS-1$
public static final int CENTER_POINTER = 1 << 1;
public static final int HIGHLIGHTED_POINTER = 1 << 2;
public static final Color focusColor = Color.orange;
public static final Color lostFocusColor = new Color(255, 224, 178);
void registerDefaultListeners();
void copyActionWState(HashMap<String, Object> actionsInView);
ImageViewerEventManager<E> getEventManager();
void updateSynchState();
PixelInfo getPixelInfo(Point p);
Panner<E> getPanner();
void setSeries(MediaSeries<E> series);
void setSeries(MediaSeries<E> newSeries, E selectedMedia);
void setFocused(Boolean focused);
double getRealWorldViewScale();
LayerAnnotation getInfoLayer();
int getTileOffset();
void setTileOffset(int tileOffset);
void center();
void setCenter(Double x, Double y);
void moveOrigin(PanPoint point);
Comparator<E> getCurrentSortComparator();
void setActionsInView(String action, Object value);
void setActionsInView(String action, Object value, Boolean repaint);
void setSelected(Boolean selected);
Font getFont();
Font getLayerFont();
void setDrawingsVisibility(Boolean visible);
Object getLensActionValue(String action);
void changeZoomInterpolation(Integer interpolation);
OpManager getDisplayOpManager();
void disableMouseAndKeyListener();
void iniDefaultMouseListener();
void iniDefaultKeyListener();
int getPointerType();
void setPointerType(int pointerType);
void addPointerType(int i);
void resetPointerType(int i);
Point2D getHighlightedPosition();
void drawPointer(Graphics2D g, Double x, Double y);
List<Action> getExportToClipboardAction();
void enableMouseAndKeyListener(MouseActions mouseActions);
void resetZoom();
void resetPan();
void reset();
List<ViewButton> getViewButtons();
void closeLens();
void updateCanvas(boolean triggerViewModelChangeListeners);
}