LINUX.ORG.RU

Как показать Integer в TreeView?

 , ,


0

2

Мучаюсь сейчас с простым кодом. Цель — TreeView, в котором две колонки с целыми числами (2D координаты).
CellRendererText умеет рендерить только DataColumnString. А у меня DataColumnInteger, который умеет рендерить только CellRendererProgress. Но мне не нужен прогрессбар. Что делать?

		TreeIter row;
		CellRendererText renderer;
		TreeViewColumn xColumn, yColumn;

		int[][] points = figure.getPoints();

		final DataColumnInteger xCol, yCol;
		model_points = new ListStore(
				new DataColumn[] { xCol = new DataColumnInteger(),
						yCol = new DataColumnInteger() });

		lview_points = new TreeView(model_points);
		lview_points.setCanFocus(false);
		lview_points.setCanDefault(false);
		lview_points.setSizeRequest(100, 0);

		for (int[] point : points) {
			row = model_points.appendRow();
			model_points.setValue(row, xCol, point[0]);
			model_points.setValue(row, yCol, point[1]);
		}

		xColumn = lview_points.appendColumn();
		xColumn.setTitle("X");
		renderer = new CellRendererText(xColumn);
		//renderer.set???
		// Как рендерить мой DataColumnInteger?
		

		yColumn = lview_points.appendColumn();
		yColumn.setTitle("Y");
		// Тут мне нужен ещё один renderer?

Или стоит просто сделать колонки типа CellRendererText?

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Ответ на: комментарий от ananas

Сделал так. С DataColumnInteger не компилится.

		TreeIter row;
		CellRendererText xRenderer, yRenderer;
		TreeViewColumn xColumn, yColumn;

		int[][] points = figure.getPoints();

		final DataColumnString xCol, yCol;
		model_points = new ListStore(new DataColumn[] {
				xCol = new DataColumnString(), yCol = new DataColumnString() });

		lview_points = new TreeView(model_points);
		lview_points.setCanFocus(false);
		lview_points.setCanDefault(false);
		lview_points.setSizeRequest(80, 0);

		for (int[] point : points) {
			row = model_points.appendRow();
			model_points.setValue(row, xCol, String.valueOf(point[0]));
			model_points.setValue(row, yCol, String.valueOf(point[1]));
		}

		xColumn = lview_points.appendColumn();
		xColumn.setTitle("X");
		xRenderer = new CellRendererText(xColumn);
		xRenderer.setText(xCol);
		xRenderer.setEditable(true);

		yColumn = lview_points.appendColumn();
		yColumn.setTitle("Y");
		yRenderer = new CellRendererText(yColumn);
		yRenderer.setText(yCol);
		yRenderer.setEditable(true);

CYB3R ★★★★★
() автор топика
24 сентября 2014 г.
Ответ на: комментарий от CYB3R

В нашей джаве принято делать публичными только функции getSmth и setSmth, ибо секурно.

Бойлерплейт

anonymous
()
Ответ на: комментарий от Patrick13

да, но там, в отличии от говножабы, есть свойства, поэтому костыли а-ля getX()/setX() не нужны.

Lincor
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.