/******************************************************************************* * Copyright (c) 2014 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.editors.externalbrowser; import java.util.List; import org.apache.log4j.Logger; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.part.EditorPart; import com.hangum.tadpole.commons.libs.core.define.PublicTadpoleDefine; import com.hangum.tadpole.commons.util.TadpoleWidgetUtils; import com.hangum.tadpole.engine.query.dao.system.ExternalBrowserInfoDAO; import com.hangum.tadpole.engine.query.dao.system.UserDBDAO; /** * External Browser editor * * @author hangum * */ public class ExternalBrowserEditor extends EditorPart { private static final Logger logger = Logger.getLogger(ExternalBrowserEditor.class); public static String ID = "com.hangum.tadpole.rdb.core.editor.externalBrowser"; // define input values private UserDBDAO userDB; private List<ExternalBrowserInfoDAO> listExternalBrowser; private CTabFolder tfMain; public ExternalBrowserEditor() { super(); } @Override public void createPartControl(Composite parent) { GridLayout gl_parent = new GridLayout(1, false); gl_parent.verticalSpacing = 2; gl_parent.horizontalSpacing = 2; gl_parent.marginHeight = 2; gl_parent.marginWidth = 2; parent.setLayout(gl_parent); tfMain = new CTabFolder(parent, SWT.NONE); tfMain.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); tfMain.setBorderVisible(false); tfMain.setSelectionBackground(TadpoleWidgetUtils.getTabFolderBackgroundColor(), TadpoleWidgetUtils.getTabFolderPercents()); for(ExternalBrowserInfoDAO dao : listExternalBrowser) { if(dao.getIs_used().equals(PublicTadpoleDefine.YES_NO.YES.name())) { createExtBrowser(dao); } } tfMain.setSelection(0); } /** * set external browser * @param dao */ private void createExtBrowser(ExternalBrowserInfoDAO dao) { CTabItem tbtmNewtab = new CTabItem(tfMain, SWT.NONE); tbtmNewtab.setText(dao.getName()); tbtmNewtab.setToolTipText(dao.getComment()); Composite compositeHead = new ExtBrowserWidget(tfMain, SWT.NONE, dao.getUrl()); tbtmNewtab.setControl(compositeHead); } @Override public void doSave(IProgressMonitor monitor) { } @Override public void doSaveAs() { } @Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { setSite(site); setInput(input); ExternalBrowserInput ebi = (ExternalBrowserInput)input; setPartName(ebi.getName()); userDB = ebi.getUserDB(); listExternalBrowser = ebi.getListExternalBrowser(); } @Override public boolean isDirty() { return false; } @Override public boolean isSaveAsAllowed() { return false; } @Override public void setFocus() { } }