/******************************************************************************* * Copyright (c) 2009, 2016 IBM Corporation and others. * 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: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.ua.tests.doc.internal.dialogs; import java.util.ArrayList; import org.eclipse.core.runtime.Platform; import org.eclipse.help.internal.HelpPlugin; import org.eclipse.help.internal.toc.Toc; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Shell; public class SelectTocDialog extends Dialog { private int[] selectedTocs = {}; private List tocList; private Toc[] tocs; private Button existButton, loadButton, followLinksButton; public static final int PAGES_EXIST = 1; public static final int LOAD_PAGES = 2; public static final int FOLLOW_LINKS = 3; public static final int NO_SELECTION = 3; private int buttonState; public SelectTocDialog(Shell parentShell) { super(parentShell); String locale = Platform.getNL(); tocs = HelpPlugin.getTocManager().getTocs(locale); setShellStyle(getShellStyle() | SWT.RESIZE); } @Override protected void configureShell(Shell newShell) { super.configureShell(newShell); newShell.setText("Check Table of Contents"); } @Override protected Control createDialogArea(Composite parent) { Composite inner = new Composite(parent, SWT.NULL); inner.setLayout(new GridLayout()); inner.setLayoutData(new GridData(GridData.FILL_BOTH)); Label selectLabel = new Label(inner, SWT.NULL); selectLabel.setText("Select a TOC to check"); tocList = new List(inner, SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER); for (Toc toc : tocs) { tocList.add(toc.getLabel()); } tocList.setSelection(0); GridData tocData = new GridData(GridData.FILL_BOTH); tocData.widthHint = 300; tocData.heightHint = 300; tocList.setLayoutData(tocData); existButton = new Button(inner, SWT.RADIO); existButton.setText("Check files in TOC exist"); loadButton = new Button(inner, SWT.RADIO); loadButton.setText("Check files in TOC can load including css/images/javascript"); followLinksButton = new Button(inner, SWT.RADIO); followLinksButton.setText("Check files in TOC can load and check hyperlinks"); existButton.setSelection(true); return inner; } @Override protected void okPressed() { selectedTocs = tocList.getSelectionIndices(); if (existButton.getSelection()) { buttonState = PAGES_EXIST; } else if (loadButton.getSelection()) { buttonState = LOAD_PAGES; } else if (followLinksButton.getSelection()) { buttonState = FOLLOW_LINKS; } else { buttonState = NO_SELECTION; } super.okPressed(); } public Toc[] getTocsToCheck() { ArrayList<Toc> selected = new ArrayList<>(); for (int selectedToc : selectedTocs) { selected.add(tocs[selectedToc]); } Toc[] tocsToCheck = selected.toArray(new Toc[0]) ; return tocsToCheck; } public int getTestKind() { return buttonState; } }