Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Standard Widget Toolkit (SWT) » How to align column of TableViewer
How to align column of TableViewer [message #441214] Thu, 12 August 2004 12:31 Go to next message
Eclipse UserFriend
Originally posted by: meteor.tmax.co.kr

Hi All,

I'm running into problems. I need to align Columns of TableViewer,
and i'm getting some troubles using TableColumn.
After run following program, consol is printed follow,

"0 column is right-align = true"

The first column's align-property is RIGHT, but data and header's
text of first column is showed leftly!!!

How to align first column of TableViewer?
How to separate align of header-text and data in TableViewer?

Could someone help me? Thanks in advance, and excuse me for my poor
english.

--------------------------------8<--------------------------------------

private String[] header = { "Name", "Size", "Type", "LastModified" };
private String[] columnProperties = { "Name", "Size", "Type",
"LastModified" };
private ColumnLayoutData[] columnLayouts = {
new ColumnWeightData(100),
new ColumnWeightData(60),
new ColumnWeightData(60),
new ColumnWeightData(100),
};
private File input = new File("c:/temp");
private TableViewer t_viewer;

public void createPartControl(Composite parent) {

t_viewer = new TableViewer(parent, SWT.BORDER | SWT.MULTI |
SWT.V_SCROLL);
Table table = t_viewer.getTable();
for( int i = 0; i < header.length; i++ ) {
TableColumn column = new TableColumn(table, SWT.RIGHT);
column.setText(header[i]);
}

table.setLayout(new TableLayout());
for( int i = 0; i < columnLayouts.length; i++ ) {
((TableLayout)table.getLayout()).addColumnData(columnLayouts [i]);

}

table.setLinesVisible(true);
table.setHeaderVisible(true);


System.out.println("0 column is right-align =
"+(table.getColumn(0).getAlignment()==SWT.RIGHT));

//data set
t_viewer.setLabelProvider(new TFSLabelProvider());
t_viewer.setContentProvider(new FSContentProvider());
t_viewer.setInput(input);

}

class FSContentProvider implements IStructuredContentProvider {
public Object[] getElements(Object inputElement) {
if( inputElement instanceof File ) {
return ((File)inputElement).listFiles();
}
return new Object[0];
}
public void inputChanged(Viewer viewer, Object oldInput, Object
newinput){

}
public void dispose() {

}
}

class TFSLabelProvider extends LabelProvider implements
ITableLabelProvider{

public Image getColumnImage(Object element, int columnIndex) {
return null;
}
public String getColumnText(Object element, int columnIndex) {

if( element instanceof File ){
File f = (File)element;
switch(columnIndex) {
case 0:
return f.getName();
case 1:
if(f.isFile())
return ((int)f.length()/1024) + "kb";
else
return "";
case 2:
if(f.isDirectory()) {
return "folder";
}else {
int pt = f.getName().lastIndexOf('.');
if( pt == -1 )
return "file";
else
return f.getName().substring(pt)+"file";
}
case 3:
SimpleDateFormat sdf = new
SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = new Date(f.lastModified());
return sdf.format(date);
}
}
return "";
}
}
Re: How to align column of TableViewer [message #441232 is a reply to message #441214] Thu, 12 August 2004 15:57 Go to previous message
Steve Northover is currently offline Steve NorthoverFriend
Messages: 1636
Registered: July 2009
Senior Member
This is a Windows limitation. I has been suggested that you can set the
alignment for the second column and delete the first column but I have no
idea if this works. Once the second column has become the first column,
then you won't be able to change the alignment. Someone write a snippet and
try this out ...

"meteor" <meteor@tmax.co.kr> wrote in message
news:cffnva$cge$1@eclipse.org...
> Hi All,
>
> I'm running into problems. I need to align Columns of TableViewer,
> and i'm getting some troubles using TableColumn.
> After run following program, consol is printed follow,
>
> "0 column is right-align = true"
>
> The first column's align-property is RIGHT, but data and header's
> text of first column is showed leftly!!!
>
> How to align first column of TableViewer?
> How to separate align of header-text and data in TableViewer?
>
> Could someone help me? Thanks in advance, and excuse me for my poor
> english.
>
> --------------------------------8<--------------------------------------
>
> private String[] header = { "Name", "Size", "Type", "LastModified" };
> private String[] columnProperties = { "Name", "Size", "Type",
> "LastModified" };
> private ColumnLayoutData[] columnLayouts = {
> new ColumnWeightData(100),
> new ColumnWeightData(60),
> new ColumnWeightData(60),
> new ColumnWeightData(100),
> };
> private File input = new File("c:/temp");
> private TableViewer t_viewer;
>
> public void createPartControl(Composite parent) {
>
> t_viewer = new TableViewer(parent, SWT.BORDER | SWT.MULTI |
> SWT.V_SCROLL);
> Table table = t_viewer.getTable();
> for( int i = 0; i < header.length; i++ ) {
> TableColumn column = new TableColumn(table, SWT.RIGHT);
> column.setText(header[i]);
> }
>
> table.setLayout(new TableLayout());
> for( int i = 0; i < columnLayouts.length; i++ ) {
> ((TableLayout)table.getLayout()).addColumnData(columnLayouts [i]);
>
> }
>
> table.setLinesVisible(true);
> table.setHeaderVisible(true);
>
>
> System.out.println("0 column is right-align =
> "+(table.getColumn(0).getAlignment()==SWT.RIGHT));
>
> //data set
> t_viewer.setLabelProvider(new TFSLabelProvider());
> t_viewer.setContentProvider(new FSContentProvider());
> t_viewer.setInput(input);
>
> }
>
> class FSContentProvider implements IStructuredContentProvider {
> public Object[] getElements(Object inputElement) {
> if( inputElement instanceof File ) {
> return ((File)inputElement).listFiles();
> }
> return new Object[0];
> }
> public void inputChanged(Viewer viewer, Object oldInput, Object
> newinput){
>
> }
> public void dispose() {
>
> }
> }
>
> class TFSLabelProvider extends LabelProvider implements
> ITableLabelProvider{
>
> public Image getColumnImage(Object element, int columnIndex) {
> return null;
> }
> public String getColumnText(Object element, int columnIndex) {
>
> if( element instanceof File ){
> File f = (File)element;
> switch(columnIndex) {
> case 0:
> return f.getName();
> case 1:
> if(f.isFile())
> return ((int)f.length()/1024) + "kb";
> else
> return "";
> case 2:
> if(f.isDirectory()) {
> return "folder";
> }else {
> int pt = f.getName().lastIndexOf('.');
> if( pt == -1 )
> return "file";
> else
> return f.getName().substring(pt)+"file";
> }
> case 3:
> SimpleDateFormat sdf = new
> SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
> Date date = new Date(f.lastModified());
> return sdf.format(date);
> }
> }
> return "";
> }
> }
>
Previous Topic:custom SWT widget problem
Next Topic:Closing a View or making a View invisible
Goto Forum:
  


Current Time: Fri Apr 26 03:45:12 GMT 2024

Powered by FUDForum. Page generated in 0.03329 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top