Package org.apache.click.eclipse.ui.fieldassist

Source Code of org.apache.click.eclipse.ui.fieldassist.FieldAssistUtils$ContentProposalImpl

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.click.eclipse.ui.fieldassist;

import java.util.HashMap;

import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jdt.core.IBuffer;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.fieldassist.IContentProposal;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;

/**
*
* @author Naoki Takezoe
*/
public class FieldAssistUtils {
 
  private static HashMap<IJavaProject, ICompilationUnit>
    unitMap = new HashMap<IJavaProject, ICompilationUnit>();
 
  /**
   * Set contents of the compilation unit to the translated jsp text.
   *
   * @param unit the ICompilationUnit on which to set the buffer contents
   * @param value Java source code
   */ 
  public static void setContentsToCU(ICompilationUnit unit, String value){
    if (unit == null)
      return;

    synchronized (unit) {
      IBuffer buffer;
      try {

        buffer = unit.getBuffer();
      }
      catch (JavaModelException e) {
        e.printStackTrace();
        buffer = null;
      }

      if (buffer != null)
        buffer.setContents(value);
    }
  }
 
  /**
   * Creates the <code>ICompilationUnit</code> to use temporary.
   *
   * @param project the java project
   * @return the temporary <code>ICompilationUnit</code>
   * @throws JavaModelException
   */
  public synchronized static ICompilationUnit getTemporaryCompilationUnit(
      IJavaProject project) throws JavaModelException {
   
    if(unitMap.get(project) != null){
      return unitMap.get(project);
    }
   
    IPackageFragment root = project.getPackageFragments()[0];
    ICompilationUnit unit = root.getCompilationUnit("_xxx.java").getWorkingCopy(
        new NullProgressMonitor());
   
    unitMap.put(project, unit);
   
    return unit;
  }
 
  public static class ContentProposalImpl implements IContentProposal {
   
    private String content;
    private int position;
   
    public ContentProposalImpl(String content, int position){
      this.content = content;
      this.position = position;
    }
   
    public String getContent() {
      return content.substring(position);
    }

    public int getCursorPosition() {
      return content.length() - position;
    }

    public String getDescription() {
      return null;
    }

    public String getLabel() {
      return content;
    }
  }
 
  /**
   * Creates the <code>Composite</code> for the fields which don't need decoration.
   *
   * @param parent the parent composite
   * @param white whether it should paint out the background
   * @return the created <code>Composite</code> object
   */
  public static Composite createNullDecoratedPanel(Composite parent, boolean white){
    Composite composite = new Composite(parent, SWT.NULL);
    GridLayout layout = createGridLayout();
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = 0;
    composite.setLayout(layout);
    if(white){
      composite.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
    }
    Label space = new Label(composite, SWT.NULL);
    GridData gd = new GridData();
    gd.widthHint = 7;
    space.setLayoutData(gd);
    if(white){
      space.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
    }
    return composite;
  }
 
  /**
   * Creates <code>GridLayout</code> that has no margin.
   *
   * @return created <code>GridLayout</code> that has no margin
   */
  public static GridLayout createGridLayout(){
    GridLayout layout = new GridLayout(2, false);
    layout.marginBottom = 0;
    layout.marginTop = 0;
    layout.marginLeft = 0;
    layout.marginRight = 0;
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    return layout;
 
 
}
TOP

Related Classes of org.apache.click.eclipse.ui.fieldassist.FieldAssistUtils$ContentProposalImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.