/******************************************************************************* * Copyright (c) 2016 hangum. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * * Contributors: * hangum - initial API and implementation ******************************************************************************/ package com.hangum.tadpole.rdb.core.dialog.commons; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import com.hangum.tadpole.commons.libs.core.message.CommonMessages; import com.hangum.tadpole.commons.util.GlobalImageUtils; import com.hangum.tadpole.engine.query.dao.system.userdb.DBOtherDAO; /** * Map dialog * * @author hangum * */ public class MapViewerDialog extends Dialog { private String strGroupName; private DBOtherDAO dbOtherDao; private TableViewer tableViewer; /** * Create the dialog. * @param parentShell */ public MapViewerDialog(Shell parentShell, String strGroupName, DBOtherDAO dao) { super(parentShell); setShellStyle(SWT.RESIZE | SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM); this.strGroupName = strGroupName; this.dbOtherDao = dao; } @Override protected void configureShell(Shell newShell) { super.configureShell(newShell); if(!"".equals(strGroupName)) newShell.setText(String.format("%s [%s] information", strGroupName, dbOtherDao.getName())); else newShell.setText(String.format("%s information", dbOtherDao.getName())); newShell.setImage(GlobalImageUtils.getTadpoleIcon()); } /** * Create contents of the dialog. * @param parent */ @Override protected Control createDialogArea(Composite parent) { Composite container = (Composite) super.createDialogArea(parent); GridLayout gridLayout = (GridLayout) container.getLayout(); gridLayout.verticalSpacing = 3; gridLayout.horizontalSpacing = 3; gridLayout.marginHeight = 3; gridLayout.marginWidth = 3; Composite composite = new Composite(container, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); composite.setLayout(new GridLayout(1, false)); tableViewer = new TableViewer(composite, SWT.BORDER | SWT.FULL_SELECTION); Table table = tableViewer.getTable(); table.setLinesVisible(true); table.setHeaderVisible(true); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE); TableColumn tblclmnName = tableViewerColumn.getColumn(); tblclmnName.setWidth(100); tblclmnName.setText("Name"); TableViewerColumn tableViewerColumn_1 = new TableViewerColumn(tableViewer, SWT.NONE); TableColumn tblclmnValue = tableViewerColumn_1.getColumn(); tblclmnValue.setWidth(312); tblclmnValue.setText("Value"); tableViewer.setContentProvider(new ArrayContentProvider()); tableViewer.setLabelProvider(new MapLabelProvider()); initData(); return container; } /** * init data */ private void initData() { Map mapData = (Map)dbOtherDao.getUserObject(); List listMap = new ArrayList<>(); Set<String> setKey = mapData.keySet(); for (String string : setKey) { listMap.add(new KeyValueObj(string, ""+mapData.get(string))); } tableViewer.setInput(listMap); } /** * Create contents of the button bar. * @param parent */ @Override protected void createButtonsForButtonBar(Composite parent) { createButton(parent, IDialogConstants.OK_ID, CommonMessages.get().Close, true); } /** * Return the initial size of the dialog. */ @Override protected Point getInitialSize() { return new Point(450, 500); } } /** * map key value object * @author hangum * */ class KeyValueObj { String name = ""; String value = ""; public KeyValueObj(String name, String value) { this.name = name; this.value = value; } /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the value */ public String getValue() { return value; } /** * @param value the value to set */ public void setValue(String value) { this.value = value; } } /** * MapLabel Provider * @author hangum * */ class MapLabelProvider extends LabelProvider implements ITableLabelProvider { @Override public Image getColumnImage(Object element, int columnIndex) { return null; } @Override public String getColumnText(Object element, int columnIndex) { KeyValueObj obj = (KeyValueObj)element; if(columnIndex ==0) return obj.getName(); return obj.getValue(); } }