*/
package net.sourceforge.phpdt.internal.ui.text.template;
+import net.sourceforge.phpdt.internal.corext.phpdoc.PHPDocUtil;
import net.sourceforge.phpdt.internal.corext.template.TemplateContext;
import net.sourceforge.phpdt.internal.corext.template.TemplateMessages;
import net.sourceforge.phpdt.internal.corext.template.php.PHPUnitContext;
+import net.sourceforge.phpdt.internal.ui.PHPUiImages;
import net.sourceforge.phpdt.internal.ui.text.java.IPHPCompletionProposal;
import net.sourceforge.phpdt.internal.ui.text.link.LinkedPositionManager;
import net.sourceforge.phpdt.internal.ui.text.link.LinkedPositionUI;
import net.sourceforge.phpeclipse.PHPeclipsePlugin;
+import net.sourceforge.phpeclipse.builder.PHPIdentifierLocation;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.dialogs.MessageDialog;
public class DeclarationProposal implements IPHPCompletionProposal {
private final String fTemplate;
+ private final PHPIdentifierLocation fLocation;
private final TemplateContext fContext;
private final ITextViewer fViewer;
- private final Image fImage_fun;
- private final Image fImage_var;
+ // private final Image fImage_fun;
+ // private final Image fImage_var;
private final IRegion fRegion;
//private TemplateBuffer fTemplateBuffer;
* @param context the context in which the template was requested.
* @param image the icon of the proposal.
*/
- public DeclarationProposal(String template, TemplateContext context, IRegion region, ITextViewer viewer, Image image_fun, Image image_var) {
- // Assert.isNotNull(template);
- // Assert.isNotNull(context);
- // Assert.isNotNull(region);
- // Assert.isNotNull(viewer);
-
+ public DeclarationProposal(
+ String template,
+ PHPIdentifierLocation location,
+ TemplateContext context,
+ IRegion region,
+ ITextViewer viewer) {
+ // Image image_fun,
+ // Image image_var) {
fTemplate = template;
+ fLocation = location;
fContext = context;
fViewer = viewer;
- fImage_fun= image_fun;
- fImage_var= image_var;
+ // fImage_fun = image_fun;
+ // fImage_var = image_var;
fRegion = region;
}
int end = fRegion.getOffset() + fRegion.getLength();
// insert template string
- // String templateString = fTemplate; // fTemplateBuffer.getString();
+ // String templateString = fTemplate; // fTemplateBuffer.getString();
document.replace(start, end - start, fTemplate);
// translate positions
// }
LinkedPositionUI editor = new LinkedPositionUI(fViewer, manager);
- editor.setFinalCaretOffset(fTemplate.length()+start);
- // editor.setFinalCaretOffset(getCaretOffset(fTemplateBuffer) + start);
+ editor.setFinalCaretOffset(fTemplate.length() + start);
+ // editor.setFinalCaretOffset(getCaretOffset(fTemplateBuffer) + start);
editor.enter();
fSelectedRegion = editor.getSelectedRegion();
// }
}
-// private static int getCaretOffset(TemplateBuffer buffer) {
-// TemplatePosition[] variables = buffer.getVariables();
-// for (int i = 0; i != variables.length; i++) {
-// TemplatePosition variable = variables[i];
-//
-// if (variable.getName().equals(JavaTemplateMessages.getString("GlobalVariables.variable.name.cursor"))) //$NON-NLS-1$
-// return variable.getOffsets()[0];
-// }
-//
-// return buffer.getString().length();
-// }
+ // private static int getCaretOffset(TemplateBuffer buffer) {
+ // TemplatePosition[] variables = buffer.getVariables();
+ // for (int i = 0; i != variables.length; i++) {
+ // TemplatePosition variable = variables[i];
+ //
+ // if (variable.getName().equals(JavaTemplateMessages.getString("GlobalVariables.variable.name.cursor"))) //$NON-NLS-1$
+ // return variable.getOffsets()[0];
+ // }
+ //
+ // return buffer.getString().length();
+ // }
/*
* @see ICompletionProposal#getSelection(IDocument)
* @see ICompletionProposal#getAdditionalProposalInfo()
*/
public String getAdditionalProposalInfo() {
- // try {
- // if (fTemplateBuffer == null)
- // fTemplateBuffer= fContext.evaluate(fTemplate);
-
- return textToHTML(fTemplate); // fTemplateBuffer.getString());
-
- // } catch (CoreException e) {
- // handleException(e);
- // return null;
- // }
+ StringBuffer hoverInfoBuffer = new StringBuffer();
+ String workspaceLocation = PHPeclipsePlugin.getWorkspace().getRoot().getLocation().toString();
+ String filename = workspaceLocation + fLocation.getFilename();
+ PHPDocUtil.appendPHPDoc(hoverInfoBuffer, filename, fLocation);
+ return textToHTML(hoverInfoBuffer.toString());
}
/*
* @see ICompletionProposal#getImage()
*/
public Image getImage() {
- if (fTemplate.charAt(0)=='$') {
- return fImage_var;
+ switch (fLocation.getType()) {
+ case PHPIdentifierLocation.FUNCTION :
+ return PHPUiImages.get(PHPUiImages.IMG_FUN);
+ case PHPIdentifierLocation.CLASS :
+ return PHPUiImages.get(PHPUiImages.IMG_CLASS);
+ case PHPIdentifierLocation.METHOD :
+ return PHPUiImages.get(PHPUiImages.IMG_FUN);
+ case PHPIdentifierLocation.DEFINE :
+ return PHPUiImages.get(PHPUiImages.IMG_DEFINE);
+ case PHPIdentifierLocation.VARIABLE :
+ return PHPUiImages.get(PHPUiImages.IMG_VAR);
}
- return fImage_fun;
+ return PHPUiImages.get(PHPUiImages.IMG_FUN);
}
/*