/*
* Copyright 2017 Red Hat, Inc. and/or its affiliates.
*
* 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.kie.workbench.common.stunner.client.widgets.presenters.session.impl;
import java.util.Optional;
import org.kie.workbench.common.stunner.core.api.DefinitionManager;
import org.kie.workbench.common.stunner.core.client.api.ShapeManager;
import org.kie.workbench.common.stunner.core.client.canvas.AbstractCanvas;
import org.kie.workbench.common.stunner.core.client.canvas.AbstractCanvasHandler;
import org.kie.workbench.common.stunner.core.client.canvas.BaseCanvasHandler;
import org.kie.workbench.common.stunner.core.client.canvas.CanvasHandler;
import org.kie.workbench.common.stunner.core.client.canvas.listener.CanvasElementListener;
import org.kie.workbench.common.stunner.core.client.canvas.listener.HasCanvasListeners;
import org.kie.workbench.common.stunner.core.client.shape.MutationContext;
import org.kie.workbench.common.stunner.core.client.shape.Shape;
import org.kie.workbench.common.stunner.core.client.shape.factory.ShapeFactory;
import org.kie.workbench.common.stunner.core.command.CommandResult;
import org.kie.workbench.common.stunner.core.diagram.Diagram;
import org.kie.workbench.common.stunner.core.graph.Element;
import org.kie.workbench.common.stunner.core.graph.command.GraphCommandExecutionContext;
import org.kie.workbench.common.stunner.core.graph.content.view.View;
import org.kie.workbench.common.stunner.core.graph.processing.index.Index;
import org.kie.workbench.common.stunner.core.graph.util.GraphUtils;
import org.kie.workbench.common.stunner.core.rule.RuleManager;
import org.uberfire.mvp.Command;
import org.uberfire.mvp.ParameterizedCommand;
public class SessionPreviewCanvasHandlerProxy<D extends Diagram, C extends AbstractCanvas> extends BaseCanvasHandler<D, C> {
private final BaseCanvasHandler<D, C> wrapped;
@SuppressWarnings("unchecked")
public SessionPreviewCanvasHandlerProxy(final BaseCanvasHandler wrapped,
final DefinitionManager definitionManager,
final GraphUtils graphUtils,
final ShapeManager shapeManager) {
super(definitionManager,
graphUtils,
shapeManager);
this.wrapped = wrapped;
}
BaseCanvasHandler getWrapped() {
return wrapped;
}
@Override
public GraphCommandExecutionContext getGraphExecutionContext() {
//Return null to prevent Graph commands from executing
return null;
}
@Override
protected void buildGraphIndex(final Command loadCallback) {
// No index to build as it's using the index from the wrapped instance..
loadCallback.execute();
}
@Override
protected void destroyGraphIndex(final Command loadCallback) {
// No index to destroy as it's using the index from the wrapped instance.
loadCallback.execute();
}
@Override
public RuleManager getRuleManager() {
return wrapped.getRuleManager();
}
@Override
public Index<?, ?> getGraphIndex() {
return wrapped.getGraphIndex();
}
@Override
public DefinitionManager getDefinitionManager() {
return wrapped.getDefinitionManager();
}
@Override
public void register(final Shape shape,
final Element<View<?>> candidate,
final boolean fireEvents) {
wrapped.register(shape,
candidate,
fireEvents);
}
@Override
public void register(final String shapeSetId,
final Element<View<?>> candidate) {
wrapped.register(shapeSetId,
candidate);
}
@Override
public void register(final ShapeFactory<Object, AbstractCanvasHandler, Shape> factory,
final Element<View<?>> candidate,
final boolean fireEvents) {
wrapped.register(factory,
candidate,
fireEvents);
}
@Override
public void deregister(final Shape shape,
final Element element,
final boolean fireEvents) {
wrapped.deregister(shape,
element,
fireEvents);
}
@Override
public void deregister(final Element element) {
wrapped.deregister(element);
}
@Override
public void deregister(final Element element,
final boolean fireEvents) {
wrapped.deregister(element,
fireEvents);
}
@Override
public void addChild(final Element parent,
final Element child) {
wrapped.addChild(parent,
child);
}
@Override
public void addChild(final Element parent,
final Element child,
final int index) {
wrapped.addChild(parent,
child,
index);
}
@Override
public void removeChild(final Element parent,
final Element child) {
wrapped.removeChild(parent,
child);
}
@Override
public Optional<Element> getElementAt(final double x,
final double y) {
return wrapped.getElementAt(x,
y);
}
@Override
public void dock(final Element parent,
final Element child) {
wrapped.dock(parent,
child);
}
@Override
public void undock(final Element parent,
final Element child) {
wrapped.undock(parent,
child);
}
@Override
public CanvasHandler<D, C> clear() {
return wrapped.clear();
}
@Override
public CanvasHandler<D, C> doClear() {
return wrapped.doClear();
}
@Override
public void destroy() {
wrapped.destroy();
}
@Override
public void doDestroy() {
wrapped.doDestroy();
}
@Override
public void applyElementMutation(final Shape shape,
final Element candidate,
final boolean applyPosition,
final boolean applyProperties,
final MutationContext mutationContext) {
wrapped.applyElementMutation(shape,
candidate,
applyPosition,
applyProperties,
mutationContext);
}
@Override
public void applyElementMutation(final Element element,
final MutationContext mutationContext) {
wrapped.applyElementMutation(element,
mutationContext);
}
@Override
public void updateElementPosition(final Element element,
final MutationContext mutationContext) {
wrapped.updateElementPosition(element,
mutationContext);
}
@Override
public void updateElementProperties(final Element element,
final MutationContext mutationContext) {
wrapped.updateElementProperties(element,
mutationContext);
}
@Override
public void applyElementMutation(final Element candidate,
final boolean applyPosition,
final boolean applyProperties,
final MutationContext mutationContext) {
wrapped.applyElementMutation(candidate,
applyPosition,
applyProperties,
mutationContext);
}
@Override
public ShapeFactory<Object, AbstractCanvasHandler, Shape> getShapeFactory(final String shapeSetId) {
return wrapped.getShapeFactory(shapeSetId);
}
@Override
public CanvasHandler<D, C> handle(final C canvas) {
return wrapped.handle(canvas);
}
@Override
public void draw(final ParameterizedCommand<CommandResult<?>> loadCallback) {
wrapped.draw(loadCallback);
}
@Override
public void draw(final D diagram,
final ParameterizedCommand<CommandResult<?>> loadCallback) {
wrapped.draw(diagram,
loadCallback);
}
@Override
public D getDiagram() {
return wrapped.getDiagram();
}
@Override
public C getCanvas() {
return wrapped.getCanvas();
}
@Override
public HasCanvasListeners<CanvasElementListener> addRegistrationListener(final CanvasElementListener instance) {
return wrapped.addRegistrationListener(instance);
}
@Override
public HasCanvasListeners<CanvasElementListener> removeRegistrationListener(final CanvasElementListener instance) {
return wrapped.removeRegistrationListener(instance);
}
@Override
public HasCanvasListeners<CanvasElementListener> clearRegistrationListeners() {
return wrapped.clearRegistrationListeners();
}
@Override
public void notifyCanvasElementRemoved(final Element candidate) {
wrapped.notifyCanvasElementRemoved(candidate);
}
@Override
public void notifyCanvasElementAdded(final Element candidate) {
wrapped.notifyCanvasElementAdded(candidate);
}
@Override
public void notifyCanvasElementUpdated(final Element candidate) {
wrapped.notifyCanvasElementUpdated(candidate);
}
@Override
public void notifyCanvasClear() {
wrapped.notifyCanvasClear();
}
@Override
public void clearCanvas() {
wrapped.clearCanvas();
}
@Override
public AbstractCanvas getAbstractCanvas() {
return wrapped.getAbstractCanvas();
}
@Override
public boolean isCanvasRoot(final Element parent) {
return wrapped.isCanvasRoot(parent);
}
@Override
public String getUuid() {
return wrapped.getUuid();
}
@Override
public boolean equals(Object o) {
return wrapped.equals(o);
}
@Override
public int hashCode() {
return wrapped.hashCode();
}
@Override
public String toString() {
return "Proxy for " + wrapped.toString();
}
}