Cómo proporcionar un componente personalizado en la página web existente Editor Palette

Quiero agregar un nuevo componente personalizado en la página web Editor Palete llamado “myHTMLComponent”. Entonces, tan pronto como el usuario abra cualquier página html con WPE, myHTMLComponentM debería estar presente allí. ¿Cómo puedo hacer lo necesario? Además, este componente también necesitará generar los cambios de código en consecuencia. Cómo lograr el resultado deseado

¿Hay alguna entrada que pueda obtener para esto? Ya creé la etiqueta de metadatos estándar, pero ¿qué sigue?

Finalmente, encontré la solución del problema.

Para agregar nuevas categorías en la paleta, necesitamos usar pagedesignerextension en plugin.xml de la siguiente manera:

    

Donde CustomEditorPaletteFactory extenderá AbstractPaletteFactory. Aquí en createPaletteRoot (), podemos agregar nuestra categoría.

 public PaletteRoot createPaletteRoot(IEditorInput editorInput){ PaletteRoot paletteRoot = new PaletteRoot(); paletteRoot.add(createStandardComponents()); return paletteRoot; //return null; } private static PaletteContainer createStandardComponents() { PaletteDrawer componentsDrawer = new PaletteDrawer("CustomHTMLComponent"); TagToolPaletteEntry paletteEntry = new TagToolPaletteEntry( new FormPaletteComponent(".....); componentsDrawer.add(paletteEntry); return componentsDrawer; } 

Esto creará la categoría de componente en la paleta y podemos agregar tantos componentes como sea necesario usando eldirector de componentes.

Para agregar una nueva categoría en la existente: agregue esto en el constructor –

 super(); this._paletteContext = PaletteItemManager.createPaletteContext(file); this._manager = PaletteItemManager.getInstance(_paletteContext); 

Luego usa la agrupación de paletas de esta manera:

 PaletteGroup controls = new PaletteGroup("CUST HTML"); super.add(controls); ToolEntry tool = new SelectionToolEntry("CUST Cursor", "Cursor DESCRIPTION"); controls.add(tool); setDefaultEntry(tool); //Custom Marquee controls.add(new MarqueeToolEntry("Marquee", "Marquee Desc")); controls.add(new PaletteSeparator()); //This class maintins or load all categories features controls.add(new CustomComponentToolEntry("Custom Component", "Custom Component Descrition", 

Esto realmente es un buen comienzo, pero no puedo encontrar ningún tutorial o libro que profundice en este asunto. Por ejemplo, no quiero reemplazar la paleta predeterminada, pero este código lo hace con “new PaletteRoot ()” y perdí mis tags HTML. También quiero que mis nuevos componentes personalizados se comporten como tags HTML usando Arrastrar y soltar, pero no sé cómo ?????????

Más información: descubrí este código, que fue muy útil, mientras que el archivo proviene de ((FileEditorInput) editorInput) .getFile ()

 PaletteRoot paletteRoot = DesignerPaletteRootFactory.createPaletteRoot(file); 

Este es un tema muy interesante y creo que somos pioneros en documentar esta característica del eclipse. Aquí otro buen punto, quiero personalizar la etiqueta … por ejemplo, algo similar, lo que quiero lograr es agregar una etiqueta como “MI CANDADO TRUEFALSE” y luego cuando se selecciona y colocarlo en el Diseñador HTML, quiero convertirme en algo como y supongo que puedo lograrlo haciendo algo con la extensión tagTransformOperation … si sabes cómo implementarlo, Por favor hagamelo saber. también hay otras extensiones (tagConverterFactory, elValueResolver). ¡Estoy adivinando aquí! por favor me gustaría tu ayuda.

   ... 

¿¿SOLUCIÓN?? (Chino) -resuelto con tagConverterFactory http://www.blogjava.net/reloadcn/archive/2007/11/08/webeditor1.html