package com.technophobia.substeps.document.content.view.hover; import org.eclipse.jface.text.AbstractInformationControl; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import com.technophobia.substeps.document.content.view.hover.model.HoverModel; public class SubstepsHoverControl extends AbstractInformationControl { private Label header; private Label body; public SubstepsHoverControl(final Shell parent) { super(parent, ""); create(); } @Override public boolean hasContents() { return true; } @Override protected void createContent(final Composite parent) { final Group group = new Group(parent, SWT.NONE); group.setLayout(new GridLayout(1, true)); header = new Label(group, SWT.NONE); final Font existingFont = header.getFont(); final FontData existingFontData = existingFont.getFontData()[0]; header.setFont(new Font(existingFont.getDevice(), new FontData(existingFontData.getName(), existingFontData .getHeight(), SWT.BOLD))); body = new Label(group, SWT.NONE); } @Override public void setInformation(final String information) { final HoverModel hoverModel = HoverModel.fromString(information); if (hoverModel != null) { header.setText(hoverModel.header()); body.setText(hoverModel.body()); setStatusText(hoverModel.location()); } } }