Thanks, I see how it works. So, there's the resize-table-column appEvent that I can bind a custom command to. I'll give it a try, thanks for the docs reference and the example.
Carlos On Thu, Oct 2, 2025 at 10:04 PM Hussein Shafie <[email protected]> wrote: > Carlos Villegas wrote: > > In the Web edition, > > There should be no difference between Web Edition and the desktop app. > See appEvent binding below and non-interactive table column resizing > command below. > > > > > I'm testing a type of definition list in my schema. > > The CSS is something like this: > > > > definitionList { > > display: table; > > margin-left: 1ex; > > margin-top: 1ex; > > margin-bottom: 1ex; > > } > > > > definitionList > item { > > display: table-row; > > } > > > > definitionList > item > term { > > display: table-cell; > > padding: 0.3ex; > > width: 25%; > > font-weight: bold; > > } > > > > definitionList > item > definition { > > display: table-cell; > > padding: 0.3ex; > > width: 75%; > > } > > > > I noticed that in the web editor client, I can grab the border between > term and definition and drag it about, which seems to be trying to > interactively resize the columns, > > For now, there is no way to prevent this from happening. If it's styled > as a table, XXE assumes that it's an actual semantic table and that the > user may want to resize its columns. This is clearly an oversight. > > > > > similar to the docbook tools for working with tables. It doesn't really > work, but it looks like it's resizing the columns. > > Yes. > > > > > Is it possible then to add some command and configuration to make it > work interactively. Probably need to add an attribute for the width also. > > It's more complicated than this because there is no generic command > which, after a proper parameterization, would allow to resize the > columns of all kinds of tables. See below. > > > > > If it's possible, what do I need to do? > > In theory, yes. Here's how it works. > > I'll use DITA <simpletable> (because these are quite simple tables; see > > https://docs.oasis-open.org/dita/dita/v1.3/errata02/os/complete/part2-tech-content/langRef/base/simpletable.html#simpletable > and > > https://docs.oasis-open.org/dita/dita/v1.3/errata02/os/complete/part2-tech-content/langRef/attributes/simpletableAttributes.html) > > as an example: > > Excerpts (simplified) from dita/topic_support.incl: > ============================================================= > <!-- Interactively resize a table column by dragging its separator. --> > <binding> > <appEvent name="resize-table-column" /> > <command name="dita.resizeSimpleTableColumn" > parameter="%{resizedColumn} %{columnCount} > %{oldColumnWidths} %{newColumnWidths}" /> > </binding> > > <command name="dita.resizeSimpleTableColumn"> > <class>com.xmlmind.xmleditext.dita.ResizeSimpleTableColumn</class> > </command> > ============================================================= > > --> The documentation of <appEvent name="resize-table-column" /> is > found here: > > > https://www.xmlmind.com/xmleditor/_distrib/doc/configure/binding.html#resize_table_column_app_event > > ResizeSimpleTableColumn.java: > ============================================================= > package com.xmlmind.xmleditext.dita; > > import com.xmlmind.xml.name.Namespace; > import com.xmlmind.xml.name.Name; > import com.xmlmind.xml.doc.Element; > import com.xmlmind.xmledit.control.CommandResult; > import com.xmlmind.xmledit.view.DocumentView; > import com.xmlmind.xmledit.cmd.CommandBase; > import com.xmlmind.xmleditapp.cmd.table.ResizeColumnHelper; > > public final class ResizeSimpleTableColumn extends CommandBase { > private Element simpleTable; > private int[] proportionalColumnWidths; > > private static final Name SIMPLETABLE_NAME = > Name.get(Namespace.NONE, "simpletable"); > > // > ------------------------------------------------------------------------ > > public ResizeSimpleTableColumn() { > super(/*repeatable*/ false, /*recordable*/ false); > } > > public boolean prepare(DocumentView docView, > String parameter, int x, int y) { > proportionalColumnWidths = null; > simpleTable = docView.getSelectedElement(/*implicit*/ false); > if (simpleTable == null || > simpleTable.getName() != SIMPLETABLE_NAME || > !simpleTable.isEditable()) { > simpleTable = null; > return false; > } > > if (parameter == null) { > simpleTable = null; > return false; > } > > proportionalColumnWidths = > ResizeColumnHelper.toProportionalWidths(parameter, 1000); > if (proportionalColumnWidths == null) { > simpleTable = null; > return false; > } > > return true; > } > > public CommandResult doExecute(DocumentView docView, > String parameter, int x, int y) { > //INTERACTIVE: no > > StringBuilder buffer = new StringBuilder(); > > final int columnCount = proportionalColumnWidths.length; > for (int i = 0; i < columnCount; ++i) { > if (i > 0) { > buffer.append(' '); > } > buffer.append(Integer.toString(proportionalColumnWidths[i])); > buffer.append('*'); > } > > simpleTable.putAttribute(Name.get(Namespace.NONE, "relcolwidth"), > buffer.toString()); > > docView.describeUndo(Msg.msg("RSTC.resizeTableColumn")); > > // Needed to refresh the Undo description in the GUI. > docView.notifyContextChangeListeners(); > > simpleTable = null; > proportionalColumnWidths = null; > return CommandResult.DONE; > } > } > ============================================================= > >
-- XMLmind XML Editor Support List [email protected] http://www.xmlmind.com/mailman/listinfo/xmleditor-support

