2017-05-05 1 views
0

J'ai beaucoup de boîtes de dialogue utilisant TableViewer avec une disposition TableColumnLayout.
Les colonnes du TableViewers sont représentées avec une disposition TableColumnLayout.
je voudrais avoir la première colonne à ne pas être redimensionnable
J'ai essayé toutes les combinaisons possibles de ColumnWeightData et ColumnPixelData avec resizable=false mais il ne semble pas fonctionner.
Q:SWT: ColumnWeightData et ColumnPixelData: rôle de l'attribut `resizable`?

  • ce qui est l'attribut resizable utilisé dans les classes ColumnWeightData et ColumnPixelData?
  • comment définir la première colonne à ne pas être redimensionnable?

Répondre

2

En regardant à travers le code source, ce drapeau ne semble rien faire automatiquement, vous devez utiliser manuellement sa valeur. Pour ce faire, appelez la méthode TableColumnsetResizable.

Si vous utilisez TableViewerColumn ce serait quelque chose comme:

TableViewerColumn col = new TableViewerColumn(viewer, SWT.LEAD); 

ColumnLayoutData colData = new ColumnWeightData(50, false); 

layout.setColumnData(col.getColumn(), colData); 

// Set resizeable from column layout data 
col.getColumn().setResizable(colData.resizable); 
+0

Merci. Définir 'resizable'to' false' directement sur 'TableViewerColumn' rend la colonne non redimensionnable. La question sur le rôle de l'attribut 'resizable' des classes' ColumnWeightData' et 'ColumnPixelData' est toujours là. Un bug? un code mort? Je pense à l'ouverture d'un bug dans Eclipse – titou10

+0

Beaucoup de code dans Eclipse fait ce que je montre ci-dessus. C'est plutôt étrange mais semble être la façon dont il était destiné à être utilisé. –

+0

Je vais regarder le code et vérifier si cela peut être "corrigé" – titou10