/****************************************************************************** * Copyright (c) 2011-2013, Linagora * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Linagora - initial API and implementation *******************************************************************************/ package com.ebmwebsourcing.petals.common.internal.formeditor; import org.eclipse.core.resources.IFile; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.widgets.FormText; import com.ebmwebsourcing.petals.common.internal.provisional.formeditor.AbstractJbiEditorPersonality; import com.ebmwebsourcing.petals.common.internal.provisional.formeditor.ISharedEdition; import com.ebmwebsourcing.petals.common.internal.provisional.swt.OpenSourceEditorHyperlinkListener; import com.sun.java.xml.ns.jbi.Jbi; /** * A default personality for the JBI form editor. * @author Vincent Zurczak - EBM WebSourcing */ public class JbiDefaultPersonality extends AbstractJbiEditorPersonality { /* (non-Javadoc) * @see com.ebmwebsourcing.petals.common.internal.provisional.formeditor.IJbiEditorPersonality * #getStatusLineLabelProvider() */ @Override public ILabelProvider getStatusLineLabelProvider() { return new LabelProvider(); } /* (non-Javadoc) * @see com.ebmwebsourcing.petals.common.internal.provisional.formeditor.IJbiEditorPersonality * #dispose() */ @Override public void dispose() { // nothing } /* (non-Javadoc) * @see com.ebmwebsourcing.petals.common.internal.provisional.formeditor.IJbiEditorPersonality * #matchesPersonality(com.sun.java.xml.ns.jbi.Jbi, org.eclipse.core.resources.IFile) */ @Override public boolean matchesPersonality( Jbi model, IFile editedFile ) { return true; } /* (non-Javadoc) * @see com.ebmwebsourcing.petals.common.internal.provisional.formeditor.IJbiEditorPersonality * #createControl(org.eclipse.swt.widgets.Composite, com.ebmwebsourcing.petals.common.internal.provisional.formeditor.ISharedEdition) */ @Override public void createControl( final Composite parent, final ISharedEdition ise ) { Composite c = ise.getFormToolkit().createComposite( parent ); c.setLayout( new GridLayout()); c.setLayoutData( new GridData( GridData.FILL_BOTH )); StringBuilder sb = new StringBuilder(); sb.append( "<form>" ); sb.append( "<p>This <b>jbi.xml</b> file cannot be read by this editor.</p>" ); sb.append( "</form>" ); FormText formText = ise.getFormToolkit().createFormText( c, false ); formText.setLayoutData( new GridData( SWT.CENTER, SWT.BOTTOM, true, true )); formText.setText( sb.toString(), true, false ); sb = new StringBuilder(); sb.append( "<form>" ); sb.append( "<p>Please, use the <a>Source Editor</a> instead.</p>" ); sb.append( "</form>" ); formText = ise.getFormToolkit().createFormText( c, false ); formText.setLayoutData( new GridData( SWT.CENTER, SWT.TOP, true, true )); formText.setText( sb.toString(), true, false ); formText.addHyperlinkListener( new OpenSourceEditorHyperlinkListener( ise.getEditedFile(), true )); } /* (non-Javadoc) * @see com.ebmwebsourcing.petals.common.internal.provisional.formeditor.IJbiEditorPersonality * #getTitle() */ @Override public String getTitle() { return "Not Supported"; } /* (non-Javadoc) * @see com.ebmwebsourcing.petals.common.internal.provisional.formeditor.IJbiEditorPersonality * #getTitleImage() */ @Override public Image getTitleImage() { return null; } }