protected void onDeleteEdge() {
   EdgeExtension ext = (EdgeExtension) animateSet.findExtension("EDGE");
   if (ext == null) {
     return;
   }
   int sel = borderList.getSelectionIndex();
   ext.edges.remove(sel);
   owner.setDirty(true);
   borderListViewer.refresh();
   edgeSelectionChanged();
 }
  // 选择一个粒子效果作为绑定的预览效果
  private void onPreviewParticleEffect() {
    if (!glMode) {
      MessageDialog.openError(getShell(), "错误", "只有OpenGL模式才能使用此功能。");
      return;
    }

    if (hookPoint == null) {
      MessageDialog.openError(getShell(), "错误", "请先选择一个挂接点。");
      return;
    }

    ownerEditor.hookParticleEffect(hookPoint);
  }
 protected void onAddEdge() {
   EdgeExtension ext = (EdgeExtension) animateSet.findExtension("EDGE");
   if (ext == null) {
     ext = new EdgeExtension();
     animateSet.addExtension(ext);
   }
   EdgeExtension.Edge newEdge = new EdgeExtension.Edge();
   newEdge.beginAnimateIndex = -1;
   newEdge.endAnimateIndex = -1;
   newEdge.beginY = 0;
   newEdge.height = 0;
   newEdge.beginX = new int[0];
   newEdge.endX = new int[0];
   ext.edges.add(newEdge);
   owner.setDirty(true);
   borderListViewer.refresh();
   edgeSelectionChanged();
 }
 @Override
 public void contentChanged(Object source) {
   owner.setDirty(true);
 }