/** * Copyright 2011 Steve Good [steve@stevegood.org] * * Licensed 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 com.muratools.eclipse.wizard.newPlugin; import java.util.ArrayList; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.custom.CCombo; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Group; import com.muratools.eclipse.EventHandler; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.layout.RowData; public class EventHandlersPage extends WizardPage { ArrayList<EventHandler> eventHandlers = new ArrayList<EventHandler>(); private Table table; private Text txtComponent; private CCombo eventSelect; private Button btnPersist; public EventHandlersPage(String pageName) { super(pageName); setTitle("Event Handlers"); setDescription("Manage the new plugin's event handlers"); } //@Override public void createControl(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); setControl(composite); composite.setLayout(new RowLayout(SWT.VERTICAL)); Group grpEventHandlers = new Group(composite, SWT.NONE); grpEventHandlers.setLayoutData(new RowData(560, 171)); grpEventHandlers.setText("Event Handlers"); Composite composite_1 = new Composite(composite, SWT.NONE); composite_1.setLayoutData(new RowData(562, SWT.DEFAULT)); composite_1.setLayout(null); Button btnRemoveEventHandler = new Button(composite_1, SWT.NONE); btnRemoveEventHandler.setBounds(303, 3, 132, 25); btnRemoveEventHandler.setText("Remove Event Handler"); btnRemoveEventHandler.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { int selectionIndex = table.getSelectionIndex(); table.remove(selectionIndex); eventHandlers.remove(selectionIndex); } public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); } }); Button btnClearEventHandlers = new Button(composite_1, SWT.NONE); btnClearEventHandlers.setBounds(441, 3, 121, 25); btnClearEventHandlers.setText("Clear Event Handlers"); btnClearEventHandlers.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { table.removeAll(); eventHandlers.removeAll(eventHandlers); } public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); } }); Group grpAddNewEvent = new Group(composite, SWT.NONE); grpAddNewEvent.setLayoutData(new RowData(560, SWT.DEFAULT)); grpAddNewEvent.setText("Add New Event Handler"); grpAddNewEvent.setLayout(new GridLayout(6, false)); Label lblEvent = new Label(grpAddNewEvent, SWT.NONE); lblEvent.setText("Event"); eventSelect = new CCombo(grpAddNewEvent, SWT.BORDER); GridData gd_combo = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_combo.widthHint = 115; eventSelect.setLayoutData(gd_combo); addEventHandlerItems(); // Add all the event handler hooks to the combo dropdown Label lblComponent = new Label(grpAddNewEvent, SWT.NONE); lblComponent.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblComponent.setText("Component"); txtComponent = new Text(grpAddNewEvent, SWT.BORDER); txtComponent.setText("MainEventHandler"); txtComponent.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); btnPersist = new Button(grpAddNewEvent, SWT.CHECK); btnPersist.setSelection(true); btnPersist.setText("Persist"); Button btnAddEventHandler = new Button(grpAddNewEvent, SWT.NONE); btnAddEventHandler.setText("Add Event Handler"); grpEventHandlers.setLayout(new FillLayout(SWT.HORIZONTAL)); btnAddEventHandler.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e){ TableItem newItem = new TableItem(table, SWT.NONE); newItem.setText(0,eventSelect.getText()); newItem.setText(1,txtComponent.getText()); newItem.setText(2,new Boolean(btnPersist.getSelection()).toString()); eventHandlers.add(new EventHandler(eventSelect.getText(), txtComponent.getText(), new Boolean(btnPersist.getSelection()))); // reset the form fields txtComponent.setText("MainEventHandler"); eventSelect.setText(""); btnPersist.setSelection(true); eventSelect.setFocus(); } }); table = new Table(grpEventHandlers, SWT.BORDER | SWT.FULL_SELECTION); table.setHeaderVisible(true); table.setLinesVisible(true); TableColumn tblclmnEvent = new TableColumn(table, SWT.NONE); tblclmnEvent.setWidth(140); tblclmnEvent.setText("Event"); TableColumn tblclmnComponent = new TableColumn(table, SWT.NONE); tblclmnComponent.setWidth(314); tblclmnComponent.setText("Component"); TableColumn tblclmnPersist = new TableColumn(table, SWT.NONE); tblclmnPersist.setWidth(100); tblclmnPersist.setText("Persist"); } private void addEventHandlerItems(){ // User eventSelect.add("onBeforeUserUpdate"); eventSelect.add("onBeforeUserCreate"); eventSelect.add("onBeforeUserSave"); eventSelect.add("onUserUpdate"); eventSelect.add("onUserCreate"); eventSelect.add("onUserSave"); eventSelect.add("onAfterUserUpdate"); eventSelect.add("onAfterUserCreate"); eventSelect.add("onAfterUserSave"); eventSelect.add("onUserEdit"); // Group eventSelect.add("onBeforeGroupUpdate"); eventSelect.add("onBeforeGroupCreate"); eventSelect.add("onBeforeGroupSave"); eventSelect.add("onGroupUpdate"); eventSelect.add("onGroupCreate"); eventSelect.add("onGroupSave"); eventSelect.add("onAfterGroupUpdate"); eventSelect.add("onAfterGroupCreate"); eventSelect.add("onAfterGroupSave"); eventSelect.add("onGroupEdit"); // Login eventSelect.add("onSiteLogin"); eventSelect.add("onGlobalLogin"); eventSelect.add("onSiteLoginSuccess"); eventSelect.add("onGlobalLoginSuccess"); eventSelect.add("onSiteLoginBlocked"); eventSelect.add("onGlobalLoginBlocked"); // Content eventSelect.add("onBeforeContentSave"); eventSelect.add("onContentSave"); eventSelect.add("onAfterContentSave"); eventSelect.add("onBeforeContentDelete"); eventSelect.add("onContentDelete"); eventSelect.add("onAfterContentDelete"); eventSelect.add("onBeforeContentDeleteVersionHistory"); eventSelect.add("onContentDeleteVersionHistory"); eventSelect.add("onAfterContentDeleteVersionHistory"); eventSelect.add("onBeforeContentDeleteVersion"); eventSelect.add("onContentDeleteVersion"); eventSelect.add("onAfterContentDeleteVersion"); eventSelect.add("onContentEdit"); // Category eventSelect.add("onBeforeCategoryUpdate"); eventSelect.add("onBeforeCategoryCreate"); eventSelect.add("onBeforeCategorySave"); eventSelect.add("onBeforeCategoryDelete"); eventSelect.add("onCategoryUpdate"); eventSelect.add("onCategoryCreate"); eventSelect.add("onCategoryDelete"); eventSelect.add("onCategorySave"); eventSelect.add("onAfterCategoryUpdate"); eventSelect.add("onAfterCategoryCreate"); eventSelect.add("onAfterCategorySave"); eventSelect.add("onAfterCategoryDelete"); // Feed eventSelect.add("onBeforeFeedUpdate"); eventSelect.add("onBeforeFeedCreate"); eventSelect.add("onBeforeFeedSave"); eventSelect.add("onBeforeFeedDelete"); eventSelect.add("onFeedUpdate"); eventSelect.add("onFeedCreate"); eventSelect.add("onFeedDelete"); eventSelect.add("onFeedSave"); eventSelect.add("onAfterFeedUpdate"); eventSelect.add("onAfterFeedCreate"); eventSelect.add("onAfterFeedSave"); eventSelect.add("onAfterFeedDelete"); // Rendering eventSelect.add("onRenderStart"); eventSelect.add("onRenderEnd"); eventSelect.add("onSiteEditProfileRender"); eventSelect.add("onSiteSearchRender"); eventSelect.add("onSiteLoginPromptRender"); eventSelect.add("onContentOffLineRender"); eventSelect.add("onContentDenialRender"); //eventSelect.add("on{type}{subType}BodyRender"); //eventSelect.add("on{type}BodyRender"); eventSelect.add("onDashboardPrimaryTop"); eventSelect.add("onDashboardPrimaryBottom"); eventSelect.add("onDashboardSidebarTop"); eventSelect.add("onDashboardSidebarBottom"); eventSelect.add("onFEToolbarAdd"); // System eventSelect.add("onApplicationLoad"); eventSelect.add("onSiteDeploy"); eventSelect.add("onBeforeSiteDeploy"); eventSelect.add("onAfterSiteDeploy"); eventSelect.add("onSiteRequestInit"); eventSelect.add("onSiteRequestStart"); eventSelect.add("onSiteRequestEnd"); eventSelect.add("onGlobalRequestStart"); eventSelect.add("onGlobalRequestEnd"); eventSelect.add("onGlobalSessionStart"); eventSelect.add("onSiteError"); eventSelect.add("onGlobalError"); } }