📄 contentelement.java
字号:
package g2w.app.gchm.gui;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
/**
* The user object of the tree node.
* Used to transfer nodes and handle xml elements.
*
* @author GreatGhoul
* @version 018 2009-3-20 14:53:19
*/
public class ContentElement implements Transferable {
/** Define the flavor */
final public static DataFlavor FLAVOR =
new DataFlavor(ContentElement.class, "Content Element");
/** Supported flavors */
static DataFlavor[] FLAVORS = {FLAVOR};
/** The xml element to bind */
private Element element;
/**
* Constructor used to warp the xml node.
*
* @param elem The xml element to wrap
*/
public ContentElement(Element elem) {
element = elem;
}
public Element getElement() {
return element;
}
public String getName() {
return element.getAttributeValue("name");
}
public void setName(String name) {
element.setAttribute("name", name);
}
public String getLocal() {
return element.getAttributeValue("local");
}
public void setLocal(String local) {
element.setAttribute("local", local);
}
public String toString() {
return getName();
}
@SuppressWarnings("unchecked")
public ContentElement getChildAt(int index) {
List<Element> elements = element.getChildren();
if (index >= 0 && index < elements.size()) {
return new ContentElement(elements.get(index));
}
return null;
}
@SuppressWarnings("unchecked")
public List<ContentElement> getChildren() {
List<Element> elements = element.getChildren();
List<ContentElement> ret = new ArrayList<ContentElement>(elements.size());
Iterator<Element> iterator = elements.iterator();
while (iterator.hasNext()) {
ret.add(new ContentElement(iterator.next()));
}
return ret;
}
public int getChildCount() {
return element.getChildren().size();
}
@SuppressWarnings("unchecked")
public int getIndexOfChild(ContentElement childElem) {
List<Element> elements = element.getChildren();
return elements.indexOf(childElem);
}
@Override
public Object getTransferData(DataFlavor flavor)
throws UnsupportedFlavorException, IOException {
if (!isDataFlavorSupported(flavor))
throw new UnsupportedFlavorException(flavor);
return this;
}
@Override
public DataFlavor[] getTransferDataFlavors() {
return FLAVORS;
}
@Override
public boolean isDataFlavorSupported(DataFlavor flavor) {
for (int i = 0; i < FLAVORS.length; i++) {
if (flavor.equals(FLAVORS[i]))
return true;
}
return false;
}
/**
* 移动元素到新的位置.
*/
public void moveTo(ContentElement tagElem, int childIndex) {
tagElem.getElement().addContent(childIndex, this.getElement().detach());
}
/**
* Remove self from the parent element.
*/
public void removeFromParent() {
Element parent = element.getParentElement();
parent.removeContent(element);
}
/**
* Construct an instance of the Topic ContentElement.
*
* @param name The name attribute.
* @param local The local attribute.
* @return The topic content element instance.
*/
public static ContentElement createTopic(String name, String local) {
Element elem = new Element("Topic");
elem.setAttribute("name", name);
elem.setAttribute("local", local);
return new ContentElement(elem);
}
/**
* Add a new child at the index <i>index</i>
*
* @param child The child element to add.
* @param index The index.
*/
public void addChild(ContentElement child, int index) {
element.addContent(index, child.getElement());
}
public static ContentElement createNewTopic() {
return createTopic("新标题", "");
}
/**
* Create a root element using the given document.
*
* @param document The given project document.
* @return The root element.
*/
public static ContentElement createRoot(Document document) {
return new ContentElement(document.getRootElement());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -