/******************************************************************************* * 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.editors.main.composite.plandetail; import org.eclipse.swt.widgets.Composite; import com.hangum.tadpole.commons.dialogs.message.dao.RequestResultDAO; import com.hangum.tadpole.commons.util.NumberFormatUtils; import com.hangum.tadpole.engine.sql.util.resultset.QueryExecuteResultDTO; import com.hangum.tadpole.engine.sql.util.resultset.TadpoleResultSet; import com.hangum.tadpole.engine.utils.RequestQuery; import com.hangum.tadpole.preference.get.GetPreferenceGeneral; import com.hangum.tadpole.rdb.core.Messages; import com.hangum.tadpole.rdb.core.editors.main.composite.ResultMainComposite; import com.hangum.tadpole.rdb.core.editors.main.composite.tail.PlanTailComposite; /** * Abstract plan composite * * @author hangum * */ public abstract class AbstractPlanComposite extends Composite { /** * result main composite */ protected ResultMainComposite resultMainComposite; /** * set query plan data * * @param reqQuery * @param rsDAO */ protected RequestQuery reqQuery; protected QueryExecuteResultDTO rsDAO; /** tail composite */ protected PlanTailComposite compositeTail; public AbstractPlanComposite(Composite parent, int style, QueryExecuteResultDTO rsDAO) { super(parent, style); this.rsDAO = rsDAO; } /** * setting parent composite * * @param resultMainComposite */ public void setRDBResultComposite(ResultMainComposite resultMainComposite) { this.resultMainComposite = resultMainComposite; } public ResultMainComposite getResultMainComposite() { return resultMainComposite; } public RequestQuery getReqQuery() { return reqQuery; } public QueryExecuteResultDTO getRsDAO() { return rsDAO; } public abstract void setQueryPlanData(RequestQuery reqQuery, QueryExecuteResultDTO rsDAO); /** * 쿼리 결과 메시지를 출력합니다. * * @return */ public String getTailResultMsg() { if(getRsDAO() == null) return ""; final TadpoleResultSet trs = getRsDAO().getDataList(); final RequestResultDAO rsDAO = getReqQuery().getResultDao(); // 메시지를 출력합니다. float longExecuteTime = (rsDAO.getEndDateExecute().getTime() - rsDAO.getStartDateExecute().getTime()) / 1000f; String strResultMsg = ""; //$NON-NLS-1$ if(trs.isEndOfRead()) { strResultMsg = String.format("%s %s (%s %s)", NumberFormatUtils.commaFormat(trs.getData().size()), Messages.get().Rows, longExecuteTime, Messages.get().Sec); //$NON-NLS-1$ } else { if( (trs.getData().size() % GetPreferenceGeneral.getSelectLimitCount()) == 0) { // 데이터가 한계가 넘어 갔습니다. String strMsg = String.format(Messages.get().MainEditor_34, NumberFormatUtils.commaFormat(trs.getData().size())); strResultMsg = String.format("%s (%s %s)", strMsg, longExecuteTime, Messages.get().Sec); //$NON-NLS-1$ } else { strResultMsg = String.format("%s %s (%s %s)", NumberFormatUtils.commaFormat(trs.getData().size()), Messages.get().Rows, longExecuteTime, Messages.get().Sec); //$NON-NLS-1$ } } return strResultMsg; } public PlanTailComposite getCompositeTail() { return compositeTail; } @Override protected void checkSubclass() { } }