Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-swt-dev] getElement from database

Gabriele, this type of question is best asked in the newsgroups. I don't see any obvious problems with the code below other than your content provider returning a length instead of Object[], but I'm guessing that's a typo as that won't even compile. My guess is that the problem is with your label provider. Does your label provider implement ITableLabelProvider?

Bryan

On Jun 13, 2008, at 6:43 AM, gaghi wrote:


hi guys, i'm writing a plugin for udig(based on eclipse). I have to show a table which rows are the result of a DB selection. I'm able to get the rows from the database, but I think I'm doing something wrong in getting them
back to the table.
Following a skeleton of my code.
CollectionItem defines the type of data.
getElement is a Content Provider method.
I don't really know how move on.
I have problems with LabelProvider which doesn't allow me to show the column name because of a casting problem from CollectionItem, but i have a method like this: String[] colName= coll_It.getColumnName(); this method returns a string array. Trying instead to print a string array {from 1 to 10} the
label are printed all in the first column filling 10 rows.
i hope you could help.

public class CollectionItem {
	private ArrayList<Object[]> items= new ArrayList<Object[]>();
	private String collection;
	Object dbRow[]=null;
	public CollectionItem(String collection){
		this.collection=collection;
		extractData();
	}
	
	public ArrayList<Object[]> getItem(){
		return items;
	}
	public void extractData(){
String query = "SELECT I.* FROM Items as I Inner Join CollectionItems AS CI ON I.ItemID = CI.ItemID where CI.CollectionID like \""+collection +"\"";
		System.out.println(query);
		try {
			DbAction db= new DbAction("Collezione");
		    Statement s = db.openConnection();
			ResultSet rs = s.executeQuery(query);
			ResultSetMetaData rsmd = rs.getMetaData();
			dbRow= new Object[rsmd.getColumnCount()];
			columnName= new Object[rsmd.getColumnCount()];
			boolean done=false;
			while( rs.next() )
			{
				for(int i =1; i <= rsmd.getColumnCount(); i++){
					dbRow[i-1]=rs.getString(i);
					
				}
				
				items.add(dbRow);//fill vector with array containing rows
				
			}
			
			db.closeConnection();
		}
		 catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

Inside TableContentProvider:

public Object[] getElements(Object inputElement) {
		
		CollectionItem ci = new CollectionItem(inputElement.toString());
		return ci.getItem().toArray().length;
		
	}

Thanks,
Gabriele
--
View this message in context: http://www.nabble.com/getElement-from-database-tp17820811p17820811.html
Sent from the Eclipse Platform - swt mailing list archive at Nabble.com.

_______________________________________________
platform-swt-dev mailing list
platform-swt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/platform-swt-dev



Back to the top