blob: d3e4ea5a5fa4b60b5ec421986f595adc3f381ed2 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 Oracle Corporation 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:
* Oracle Corporation - initial API and implementation and/or initial documentation
*******************************************************************************/
package org.eclipse.jst.pagedesigner.elementedit.html;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPartViewer;
import org.eclipse.jst.jsf.common.dom.TagIdentifier;
import org.eclipse.jst.pagedesigner.IHTMLConstants;
import org.eclipse.jst.pagedesigner.elementedit.AbstractElementEdit;
import org.eclipse.jst.pagedesigner.validation.caret.IPositionMediator;
import org.eclipse.jst.pagedesigner.viewer.DefaultDropLocationStrategy;
import org.eclipse.jst.pagedesigner.viewer.DesignPosition;
import org.eclipse.jst.pagedesigner.viewer.IDropLocationStrategy;
import org.w3c.dom.Node;
/**
* Simple ElementEdit implementation to support drag and drop
* of style sheet link tags into the HTML head tag.
*/
public class StylesheetLinkElementEdit extends AbstractElementEdit
{
public IDropLocationStrategy getDropRequestorLocationStrategy(TagIdentifier tag, EditPartViewer viewer) {
return new MyDropLocationStrategy(viewer);
}
private static class MyDropLocationStrategy extends DefaultDropLocationStrategy
{
/**
* @param viewer
*/
public MyDropLocationStrategy(EditPartViewer viewer) {
super(viewer);
}
public DesignPosition calculateDesignPosition(EditPart host,
Point p, IPositionMediator validator) {
Node node = (Node) host.getModel();
if (host != null && IHTMLConstants.TAG_HEAD.equalsIgnoreCase(node.getLocalName())) {
return new DesignPosition(host, 0);
}
return super.calculateDesignPosition(host, p, validator);
}
}
}