/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.datatools.results.view; import org.eclipse.datatools.sqltools.result.ui.ExternalResultSetViewer; import org.eclipse.datatools.sqltools.result.ui.ExternalResultSetViewerProvider; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.events.DisposeEvent; import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.widgets.Composite; public class TeiidResultViewerProvider extends ExternalResultSetViewerProvider { private boolean splitterSet = false; private static int LHS_WEIGHT = 1; private static int RHS_WEIGHT = 6; @Override public void configureViewer() { // The Results View splitter will be initially to maximize the RHS Results Table. If the user resets the splitter, the resize will 'stick'. // However, if the resultsView is closed and re-opened, the splitter will go back to the original weighting. if(!splitterSet) { splitterSet = true; Composite sashForm = resultViewControl.getControl(); if(sashForm!=null && sashForm instanceof SashForm) { int[] weights = new int[]{LHS_WEIGHT,RHS_WEIGHT}; ((SashForm)sashForm).setWeights(weights); // flag is reset if resultsView is closed sashForm.addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent event) { splitterSet = false; } }); } } tableViewer = new TeiidResultSetViewer(parentComposite, tableStyle, resultInstance, resultSetObject, showRowCount, resultViewControl); menuManager = ((ExternalResultSetViewer)tableViewer).getMenuManager(); } }