// ============================================================================ // // Copyright (C) 2006-2012 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.designer.core.ui.views.statsandlogs; import org.eclipse.draw2d.GridData; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.ViewPart; import org.talend.core.model.process.EComponentCategory; import org.talend.designer.core.i18n.Messages; import org.talend.designer.core.ui.AbstractMultiPageTalendEditor; import org.talend.designer.core.ui.editor.AbstractTalendEditor; import org.talend.designer.core.ui.editor.process.Process; /** * class global comment. Detailed comment <br/> * * @deprecated remove to job settings */ public class StatsAndLogsView extends ViewPart { public static final String ID = "org.talend.designer.core.ui.views.statsandlogs.statsAndLogsView"; //$NON-NLS-1$ private static final String VIEW_NAME = "Stats/Logs";; //$NON-NLS-1$ private Process process; private String title; private Composite parent; private StatsAndLogsComposite statsAndLogsViewComposite; private boolean isEmptyComposite; /** * Default StatsAndLogsView constructor. */ public StatsAndLogsView() { } /* * (non-Javadoc) * * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) */ @Override public void createPartControl(Composite parent) { this.parent = parent; this.getCurrentJob(); if (this.process != null) { createStatsAndLogsView(); } else { this.createEmptyPartControl(parent); } } /** * Creates a empty composite if no job opened. * * @param parent */ private void createEmptyPartControl(Composite parent) { if (parent != null && !parent.isDisposed()) { Control[] children = parent.getChildren(); for (Control control : children) { control.dispose(); } } Composite alertComposite = new Composite(parent, SWT.NONE); alertComposite.setLayout(new GridLayout()); alertComposite.setLayoutData(new GridData()); Text alertText = new Text(alertComposite, SWT.NONE); alertText.setText(Messages.getString("StatsAndLogsView.dataNotAvailable")); //$NON-NLS-1$ alertText.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); parent.layout(); } /** * Creates a full composite if job is opened. * * @param parent */ private void createFullPartControl(Composite parentComposite, Process process) { if (parentComposite != null && !parentComposite.isDisposed()) { Control[] children = parentComposite.getChildren(); for (Control control : children) { control.dispose(); } } statsAndLogsViewComposite = new StatsAndLogsComposite(parentComposite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.NO_FOCUS, EComponentCategory.STATSANDLOGS, process); statsAndLogsViewComposite.refresh(); } /** * ftang Comment method "createStatsAndLogsView". * */ public void createStatsAndLogsView() { IEditorPart activeEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); AbstractTalendEditor talendEditor = ((AbstractMultiPageTalendEditor) activeEditor).getTalendEditor(); createFullPartControl(this.parent, (Process) talendEditor.getProcess()); } /* * (non-Javadoc) * * @see org.eclipse.ui.part.WorkbenchPart#setFocus() */ @Override public void setFocus() { this.parent.setFocus(); } /** * Gets current opened job. */ private void getCurrentJob() { final IEditorPart activeEditor = getSite().getPage().getActiveEditor(); if (activeEditor != null && activeEditor instanceof AbstractMultiPageTalendEditor) { AbstractTalendEditor talendEditor = ((AbstractMultiPageTalendEditor) activeEditor).getTalendEditor(); Process process = (Process) talendEditor.getProcess(); if (process != null) { this.process = process; this.title = talendEditor.getTitle(); } } } /* * (non-Javadoc) * * @see org.eclipse.ui.part.ViewPart#setPartName(java.lang.String) */ public void setPartName(String title) { String viewName = VIEW_NAME; if (!title.equals("")) { //$NON-NLS-1$ viewName = viewName + "(" + title + ")"; //$NON-NLS-1$ //$NON-NLS-2$ } super.setPartName(viewName); } /** * ftang Comment method "refresh". */ public void refresh() { if (statsAndLogsViewComposite == null || statsAndLogsViewComposite.isDisposed()) { createStatsAndLogsView(); } statsAndLogsViewComposite.refresh(); } /** * Empty view if no job is opened. */ public void emptyView() { createEmptyPartControl(parent); process = null; } /** * ftang Comment method "refreshView". */ public void refreshView() { if (!this.isEmptyComposite) { refresh(); } } }