/*******************************************************************************
* 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.Point;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.beans.PropertyChangeListener;
import java.util.Map;
import javax.swing.JComponent;
import org.weasis.core.api.gui.model.ViewModel;
import org.weasis.core.ui.model.GraphicModel;
public interface Canvas {
JComponent getJComponent();
AffineTransform getAffineTransform();
AffineTransform getInverseTransform();
void disposeView();
/**
* Gets the view model.
*
* @return the view model, never null
*/
ViewModel getViewModel();
/**
* Sets the view model.
*
* @param viewModel
* the view model, never null
*/
void setViewModel(ViewModel viewModel);
Object getActionValue(String action);
Map<String, Object> getActionsInView();
void zoom(Double viewScale);
double getBestFitViewScale();
double viewToModelX(Double viewX);
double viewToModelY(Double viewY);
double viewToModelLength(Double viewLength);
double modelToViewX(Double modelX);
double modelToViewY(Double modelY);
double modelToViewLength(Double modelLength);
Point2D getImageCoordinatesFromMouse(Integer x, Integer y);
Point getMouseCoordinatesFromImage(Double x, Double y);
void setGraphicManager(GraphicModel graphicManager);
GraphicModel getGraphicManager();
PropertyChangeListener getGraphicsChangeHandler();
}