layout.setEditorAreaVisible(true);
layout.setFixed(false);
- IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT,
- 0.25f, editorArea);
+ IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT, 0.3f, editorArea);
+ IFolderLayout right = layout.createFolder("right", IPageLayout.RIGHT, 0.5f, editorArea);
left.addView(UsersView.ID);
- left.addView(GroupsView.ID);
+ right.addView(GroupsView.ID);
}
}
import org.argeo.cms.ui.workbench.internal.useradmin.providers.MailLP;
import org.argeo.cms.ui.workbench.internal.useradmin.providers.RoleIconLP;
import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserFilter;
-import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserNameLP;
import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserTableDefaultDClickListener;
import org.argeo.cms.util.CmsUtils;
import org.argeo.cms.util.UserAdminUtils;
protected void appendOverviewPart(final Composite parent, final Group group) {
FormToolkit tk = getManagedForm().getToolkit();
Composite body = addSection(tk, parent);
- GridLayout layout = new GridLayout(5, false);
+ // GridLayout layout = new GridLayout(5, false);
+ GridLayout layout = new GridLayout(2, false);
body.setLayout(layout);
- final Text dnTxt = createLT(body, "DN", group.getName());
- dnTxt.setEnabled(false);
+ String cn = UserAdminUtils.getProperty(group, LdapAttrs.cn.name());
+ Text cnTxt = createReadOnlyLT(body, "Common Name", cn);
- final String cn = UserAdminUtils.getProperty(group, LdapAttrs.cn.name());
- final Text cnTxt = createLT(body, "Common Name", cn);
- cnTxt.setEnabled(false);
+ Text dnTxt = createReadOnlyLT(body, "DN", group.getName());
- final Link markAsWorkgroupLk = new Link(body, SWT.NONE);
- markAsWorkgroupLk.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+ Link markAsWorkgroupLk = new Link(body, SWT.NONE);
+ markAsWorkgroupLk.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1));
// Label descLbl = new Label(body, SWT.LEAD);
// descLbl.setText("Description");
columnDefs.add(new ColumnDefinition(new RoleIconLP(), "", 0, 24));
columnDefs.add(new ColumnDefinition(new CommonNameLP(), "Common Name", 150));
columnDefs.add(new ColumnDefinition(new MailLP(), "Primary Mail", 150));
- columnDefs.add(new ColumnDefinition(new UserNameLP(), "Distinguished Name", 240));
+ // columnDefs.add(new ColumnDefinition(new UserNameLP(), "Distinguished Name",
+ // 240));
// Create and configure the table
LdifUsersTable userViewerCmp = new MyUserTableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL,
Role[] roles = group.getMembers();
List<User> users = new ArrayList<User>();
userFilter.setSearchText(filter);
+ // userFilter.setShowSystemRole(true);
for (Role role : roles)
// if (role.getType() == Role.GROUP)
if (userFilter.select(null, null, role))
}
/** Creates label and text. */
- private Text createLT(Composite parent, String label, String value) {
+// private Text createLT(Composite parent, String label, String value) {
+// FormToolkit toolkit = getManagedForm().getToolkit();
+// Label lbl = toolkit.createLabel(parent, label);
+// lbl.setLayoutData(new GridData(SWT.LEAD, SWT.CENTER, false, false));
+// lbl.setFont(EclipseUiUtils.getBoldFont(parent));
+// Text text = toolkit.createText(parent, value, SWT.BORDER);
+// text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+// CmsUtils.style(text, CmsWorkbenchStyles.WORKBENCH_FORM_TEXT);
+// return text;
+// }
+//
+ Text createReadOnlyLT(Composite parent, String label, String value) {
FormToolkit toolkit = getManagedForm().getToolkit();
Label lbl = toolkit.createLabel(parent, label);
lbl.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
lbl.setFont(EclipseUiUtils.getBoldFont(parent));
- Text text = toolkit.createText(parent, value, SWT.BORDER);
+ Text text = toolkit.createText(parent, value, SWT.NONE);
text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+ text.setEditable(false);
CmsUtils.style(text, CmsWorkbenchStyles.WORKBENCH_FORM_TEXT);
return text;
}
+
}
import org.argeo.cms.ui.workbench.internal.useradmin.providers.DomainNameLP;
import org.argeo.cms.ui.workbench.internal.useradmin.providers.RoleIconLP;
import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserDragListener;
-import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserNameLP;
import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserTableDefaultDClickListener;
import org.argeo.eclipse.ui.ColumnDefinition;
import org.argeo.eclipse.ui.EclipseUiUtils;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
public void createPartControl(Composite parent) {
parent.setLayout(EclipseUiUtils.noSpaceGridLayout());
- boolean isAdmin = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN);
+// boolean isAdmin = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN);
// Define the displayed columns
- columnDefs.add(new ColumnDefinition(new RoleIconLP(), "", 26));
- columnDefs.add(new ColumnDefinition(new CommonNameLP(), "Common Name",
- 150));
- columnDefs.add(new ColumnDefinition(new DomainNameLP(), "Domain", 200));
+ columnDefs.add(new ColumnDefinition(new RoleIconLP(), "", 19));
+ columnDefs.add(new ColumnDefinition(new CommonNameLP(), "Common Name", 150));
+ columnDefs.add(new ColumnDefinition(new DomainNameLP(), "Domain", 100));
// Only show technical DN to admin
- if (isAdmin)
- columnDefs.add(new ColumnDefinition(new UserNameLP(),
- "Distinguished Name", 300));
+ // if (isAdmin)
+ // columnDefs.add(new ColumnDefinition(new UserNameLP(),
+ // "Distinguished Name", 300));
// Create and configure the table
- groupTableViewerCmp = new MyUserTableViewer(parent, SWT.MULTI
- | SWT.H_SCROLL | SWT.V_SCROLL);
+ groupTableViewerCmp = new MyUserTableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
groupTableViewerCmp.setColumnDefinitions(columnDefs);
- if (isAdmin)
- groupTableViewerCmp.populateWithStaticFilters(false, false);
- else
+// if (isAdmin)
+// groupTableViewerCmp.populateWithStaticFilters(false, false);
+// else
groupTableViewerCmp.populate(true, false);
- groupTableViewerCmp.setLayoutData(EclipseUiUtils.fillAll());
+ groupTableViewerCmp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
// Links
userViewer = groupTableViewerCmp.getTableViewer();
// Drag and drop
int operations = DND.DROP_COPY | DND.DROP_MOVE;
Transfer[] tt = new Transfer[] { TextTransfer.getInstance() };
- userViewer.addDragSupport(operations, tt, new UserDragListener(
- userViewer));
+ userViewer.addDragSupport(operations, tt, new UserDragListener(userViewer));
// // Register a useradmin listener
// listener = new UserAdminListener() {
private class MyUserTableViewer extends LdifUsersTable {
private static final long serialVersionUID = 8467999509931900367L;
- private boolean showSystemRoles;
+ private boolean showSystemRoles = true;
- private final String[] knownProps = { LdapAttrs.uid.name(),
- LdapAttrs.cn.name(), LdapAttrs.DN };
+ private final String[] knownProps = { LdapAttrs.uid.name(), LdapAttrs.cn.name(), LdapAttrs.DN };
public MyUserTableViewer(Composite parent, int style) {
super(parent, style);
+ showSystemRoles = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN);
}
protected void populateStaticFilters(Composite staticFilterCmp) {
staticFilterCmp.setLayout(new GridLayout());
- final Button showSystemRoleBtn = new Button(staticFilterCmp,
- SWT.CHECK);
+ final Button showSystemRoleBtn = new Button(staticFilterCmp, SWT.CHECK);
showSystemRoleBtn.setText("Show system roles");
showSystemRoles = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN);
showSystemRoleBtn.setSelection(showSystemRoles);
-
+
showSystemRoleBtn.addSelectionListener(new SelectionAdapter() {
private static final long serialVersionUID = -7033424592697691676L;
tmpBuilder.append("*)");
}
if (tmpBuilder.length() > 1) {
- builder.append("(&(").append(LdapAttrs.objectClass.name())
- .append("=").append(LdapObjs.groupOfNames.name())
- .append(")");
+ builder.append("(&(").append(LdapAttrs.objectClass.name()).append("=")
+ .append(LdapObjs.groupOfNames.name()).append(")");
if (!showSystemRoles)
- builder.append("(!(").append(LdapAttrs.DN).append("=*")
- .append(NodeConstants.ROLES_BASEDN)
+ builder.append("(!(").append(LdapAttrs.DN).append("=*").append(NodeConstants.ROLES_BASEDN)
.append("))");
builder.append("(|");
builder.append(tmpBuilder.toString());
builder.append("))");
} else {
if (!showSystemRoles)
- builder.append("(&(")
- .append(LdapAttrs.objectClass.name())
- .append("=")
- .append(LdapObjs.groupOfNames.name())
- .append(")(!(").append(LdapAttrs.DN)
- .append("=*")
- .append(NodeConstants.ROLES_BASEDN)
- .append(")))");
+ builder.append("(&(").append(LdapAttrs.objectClass.name()).append("=")
+ .append(LdapObjs.groupOfNames.name()).append(")(!(").append(LdapAttrs.DN).append("=*")
+ .append(NodeConstants.ROLES_BASEDN).append(")))");
else
- builder.append("(")
- .append(LdapAttrs.objectClass.name())
- .append("=")
- .append(LdapObjs.groupOfNames.name())
- .append(")");
+ builder.append("(").append(LdapAttrs.objectClass.name()).append("=")
+ .append(LdapObjs.groupOfNames.name()).append(")");
}
- roles = userAdminWrapper.getUserAdmin().getRoles(
- builder.toString());
+ roles = userAdminWrapper.getUserAdmin().getRoles(builder.toString());
} catch (InvalidSyntaxException e) {
- throw new CmsException("Unable to get roles with filter: "
- + filter, e);
+ throw new CmsException("Unable to get roles with filter: " + filter, e);
}
List<User> users = new ArrayList<User>();
for (Role role : roles)
*/
package org.argeo.cms.ui.workbench.internal.useradmin.parts;
+import static org.argeo.cms.util.UserAdminUtils.getProperty;
+import static org.argeo.naming.LdapAttrs.cn;
+import static org.argeo.naming.LdapAttrs.givenName;
+import static org.argeo.naming.LdapAttrs.mail;
+import static org.argeo.naming.LdapAttrs.sn;
+import static org.argeo.naming.LdapAttrs.uid;
+
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.argeo.cms.ui.workbench.internal.useradmin.providers.DomainNameLP;
import org.argeo.cms.ui.workbench.internal.useradmin.providers.RoleIconLP;
import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserFilter;
-import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserNameLP;
import org.argeo.cms.ui.workbench.internal.useradmin.providers.UserTableDefaultDClickListener;
import org.argeo.cms.util.CmsUtils;
import org.argeo.cms.util.UserAdminUtils;
Composite body = tk.createComposite(section, SWT.WRAP);
body.setLayoutData(EclipseUiUtils.fillAll());
section.setClient(body);
- body.setLayout(new GridLayout(6, false));
-
- final Text commonName = createLT(tk, body, "User Name", UserAdminUtils.getProperty(user, LdapAttrs.cn.name()));
- commonName.setEnabled(false);
+ // body.setLayout(new GridLayout(6, false));
+ body.setLayout(new GridLayout(2, false));
- final Text distinguishedName = createLT(tk, body, "Login",
- UserAdminUtils.getProperty(user, LdapAttrs.uid.name()));
- distinguishedName.setEnabled(false);
+ Text commonName = createReadOnlyLT(tk, body, "Name", getProperty(user, cn));
+ Text distinguishedName = createReadOnlyLT(tk, body, "Login", getProperty(user, uid));
+ Text firstName = createLT(tk, body, "First name", getProperty(user, givenName));
+ Text lastName = createLT(tk, body, "Last name", getProperty(user, sn));
+ Text email = createLT(tk, body, "Email", getProperty(user, mail));
Link resetPwdLk = new Link(body, SWT.NONE);
if (!UserAdminUtils.isCurrentUser(user)) {
}
resetPwdLk.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
- final Text firstName = createLT(tk, body, "First name",
- UserAdminUtils.getProperty(user, LdapAttrs.givenName.name()));
-
- final Text lastName = createLT(tk, body, "Last name", UserAdminUtils.getProperty(user, LdapAttrs.sn.name()));
-
- final Text email = createLT(tk, body, "Email", UserAdminUtils.getProperty(user, LdapAttrs.mail.name()));
-
// create form part (controller)
AbstractFormPart part = new SectionPart((Section) body.getParent()) {
private MainInfoListener listener;
Composite body = (Composite) section.getClient();
body.setLayout(EclipseUiUtils.noSpaceGridLayout());
- boolean isAdmin = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN);
+ // boolean isAdmin = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN);
// Displayed columns
List<ColumnDefinition> columnDefs = new ArrayList<ColumnDefinition>();
columnDefs.add(new ColumnDefinition(new RoleIconLP(), "", 0, 24));
- columnDefs.add(new ColumnDefinition(new CommonNameLP(), "Common Name", 250));
- columnDefs.add(new ColumnDefinition(new DomainNameLP(), "Domain Name", 120));
+ columnDefs.add(new ColumnDefinition(new CommonNameLP(), "Common Name", 150));
+ columnDefs.add(new ColumnDefinition(new DomainNameLP(), "Domain Name", 100));
// Only show technical DN to administrators
- if (isAdmin)
- columnDefs.add(new ColumnDefinition(new UserNameLP(), "Distinguished Name", 300));
+ // if (isAdmin)
+ // columnDefs.add(new ColumnDefinition(new UserNameLP(), "Distinguished Name",
+ // 300));
// Create and configure the table
final LdifUsersTable userViewerCmp = new MyUserTableViewer(body, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL, user);
userViewerCmp.setColumnDefinitions(columnDefs);
- if (isAdmin)
- userViewerCmp.populateWithStaticFilters(false, false);
- else
- userViewerCmp.populate(true, false);
+ // if (isAdmin)
+ // userViewerCmp.populateWithStaticFilters(false, false);
+ // else
+ userViewerCmp.populate(true, false);
GridData gd = EclipseUiUtils.fillAll();
gd.heightHint = 500;
userViewerCmp.setLayoutData(gd);
CmsUtils.style(text, CmsWorkbenchStyles.WORKBENCH_FORM_TEXT);
return text;
}
+
+ Text createReadOnlyLT(FormToolkit toolkit, Composite parent, String label, String value) {
+ Label lbl = toolkit.createLabel(parent, label);
+ lbl.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
+ lbl.setFont(EclipseUiUtils.getBoldFont(parent));
+ Text text = toolkit.createText(parent, value, SWT.NONE);
+ text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+ text.setEditable(false);
+ CmsUtils.style(text, CmsWorkbenchStyles.WORKBENCH_FORM_TEXT);
+ return text;
+ }
}
public String getText(User user) {
return UserAdminUtils.getProperty(user, LdapAttrs.cn.name());
}
+
+ @Override
+ public String getToolTipText(Object element) {
+ return UserAdminUtils.getProperty((User) element, LdapAttrs.DN);
+ }
+
}
// OTHER USERS HELPERS
/**
- * Retrieves the local id of a user or group, that is respectively the uid
- * or cn of the passed dn with no {@link UserAdmin}
+ * Retrieves the local id of a user or group, that is respectively the uid or cn
+ * of the passed dn with no {@link UserAdmin}
*/
public static String getUserLocalId(String dn) {
LdapName ldapName = getLdapName(dn);
}
/**
- * Returns the local username if no user with this dn is found or if the
- * found user has no defined display name
+ * Returns the local username if no user with this dn is found or if the found
+ * user has no defined display name
*/
public static String getUserDisplayName(UserAdmin userAdmin, String dn) {
Role user = userAdmin.getRole(dn);
// LDAP NAMES HELPERS
/**
- * Easily retrieves one of the {@link Role}'s property or an empty String if
- * the requested property is not defined
+ * Easily retrieves one of the {@link Role}'s property or an empty String if the
+ * requested property is not defined
*/
public final static String getProperty(Role role, String key) {
Object obj = role.getProperties().get(key);
return "";
}
+ public final static String getProperty(Role role, Enum<?> key) {
+ Object obj = role.getProperties().get(key.name());
+ if (obj != null)
+ return (String) obj;
+ else
+ return "";
+ }
+
/**
- * Simply retrieves a LDAP name from a {@link LdapAttrs.DN} with no
- * exception
+ * Simply retrieves a LDAP name from a {@link LdapAttrs.DN} with no exception
*/
private static LdapName getLdapName(String dn) {
try {
}
// TODO workaround the bug of the table layout in the Form
- public LdifUsersTable(Composite parent, int style,
- boolean preventTableLayout) {
+ public LdifUsersTable(Composite parent, int style, boolean preventTableLayout) {
super(parent, SWT.NO_FOCUS);
this.tableStyle = style;
this.preventTableLayout = preventTableLayout;
* @param addFilter
* choose to add a field to filter results or not
* @param addSelection
- * choose to add a column to select some of the displayed results
- * or not
+ * choose to add a column to select some of the displayed results or
+ * not
*/
public void populate(boolean addFilter, boolean addSelection) {
// initialization
* @param showMore
* display static filters on creation
* @param addSelection
- * choose to add a column to select some of the displayed results
- * or not
+ * choose to add a column to select some of the displayed results or
+ * not
*/
public void populateWithStaticFilters(boolean showMore, boolean addSelection) {
// initialization
/** Enable access to the selected users or groups */
public List<User> getSelectedUsers() {
if (hasSelectionColumn) {
- Object[] elements = ((CheckboxTableViewer) usersViewer)
- .getCheckedElements();
+ Object[] elements = ((CheckboxTableViewer) usersViewer).getCheckedElements();
List<User> result = new ArrayList<User>();
for (Object obj : elements) {
}
return result;
} else
- throw new EclipseUiException("Unvalid request: no selection column "
- + "has been created for the current table");
+ throw new EclipseUiException(
+ "Unvalid request: no selection column " + "has been created for the current table");
}
/** Returns the User table viewer, typically to add doubleclick listener */
}
/**
- * Force the refresh of the underlying table using the current filter string
- * if relevant
+ * Force the refresh of the underlying table using the current filter string if
+ * relevant
*/
public void refresh() {
String filter = hasFilter ? filterTxt.getText().trim() : null;
/* MANAGE FILTER */
private void createFilterPart(Composite parent) {
// Text Area for the filter
- filterTxt = new Text(parent, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH
- | SWT.ICON_CANCEL);
- filterTxt.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
- | GridData.HORIZONTAL_ALIGN_FILL));
+ filterTxt = new Text(parent, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH | SWT.ICON_CANCEL);
+ filterTxt.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
filterTxt.addModifyListener(new ModifyListener() {
private static final long serialVersionUID = 1L;
filterComp.setLayout(new GridLayout(2, false));
filterComp.setLayoutData(EclipseUiUtils.fillWidth());
// generic search
- filterTxt = new Text(filterComp, SWT.BORDER | SWT.SEARCH
- | SWT.ICON_SEARCH | SWT.ICON_CANCEL);
- filterTxt.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
- | GridData.HORIZONTAL_ALIGN_FILL));
+ filterTxt = new Text(filterComp, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH | SWT.ICON_CANCEL);
+ filterTxt.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+ // filterTxt.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL |
+ // GridData.HORIZONTAL_ALIGN_FILL));
filterTxt.addModifyListener(new ModifyListener() {
private static final long serialVersionUID = 1L;
staticFilterCmp.setLayoutData(EclipseUiUtils.fillWidth(2));
populateStaticFilters(staticFilterCmp);
- MoreLinkListener listener = new MoreLinkListener(moreLk,
- staticFilterCmp, showMore);
+ MoreLinkListener listener = new MoreLinkListener(moreLk, staticFilterCmp, showMore);
// initialise the layout
listener.refresh();
moreLk.addSelectionListener(listener);
private final Composite staticFilterCmp;
private final Link moreLk;
- public MoreLinkListener(Link moreLk, Composite staticFilterCmp,
- boolean isShown) {
+ public MoreLinkListener(Link moreLk, Composite staticFilterCmp, boolean isShown) {
this.moreLk = moreLk;
this.staticFilterCmp = staticFilterCmp;
this.isShown = isShown;
// int offset = 0;
if (hasSelectionColumn) {
// offset = 1;
- column = ViewerUtils.createTableViewerColumn(viewer, "", SWT.NONE,
- 25);
+ column = ViewerUtils.createTableViewerColumn(viewer, "", SWT.NONE, 25);
column.setLabelProvider(new ColumnLabelProvider() {
private static final long serialVersionUID = 1L;
return null;
}
});
- layout.setColumnData(column.getColumn(), new ColumnWeightData(25,
- 25, false));
+ layout.setColumnData(column.getColumn(), new ColumnWeightData(25, 25, false));
SelectionAdapter selectionAdapter = new SelectionAdapter() {
private static final long serialVersionUID = 1L;
@Override
public void widgetSelected(SelectionEvent e) {
allSelected = !allSelected;
- ((CheckboxTableViewer) usersViewer)
- .setAllChecked(allSelected);
+ ((CheckboxTableViewer) usersViewer).setAllChecked(allSelected);
}
};
column.getColumn().addSelectionListener(selectionAdapter);
}
/** Default creation of a column for a user table */
- private TableViewerColumn createTableColumn(TableViewer tableViewer,
- TableColumnLayout layout, ColumnDefinition columnDef) {
+ private TableViewerColumn createTableColumn(TableViewer tableViewer, TableColumnLayout layout,
+ ColumnDefinition columnDef) {
boolean resizable = true;
TableViewerColumn tvc = new TableViewerColumn(tableViewer, SWT.NONE);
// .getDisplay());
tvc.setLabelProvider(lp);
- layout.setColumnData(column, new ColumnWeightData(
- columnDef.getWeight(), columnDef.getMinWidth(), resizable));
+ layout.setColumnData(column, new ColumnWeightData(columnDef.getWeight(), columnDef.getMinWidth(), resizable));
return tvc;
}