public void createControl()

in eclipse/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ArchetypeParametersWizardPage.java [94:243]


	public void createControl(Composite parent) {
		Composite container = new Composite(parent, SWT.NULL);
		GridLayout layout = new GridLayout();
		container.setLayout(layout);
		layout.numColumns = 2;
		layout.verticalSpacing = 9;
		
		Label label = new Label(container, SWT.NULL);
		label.setText("&Group Id:");
		groupId = new Text(container, SWT.BORDER | SWT.SINGLE);
		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
		groupId.setLayoutData(gd);
		groupId.addModifyListener(new ModifyListener() {
			public void modifyText(ModifyEvent e) {
				dialogChanged();
				if (!javaPackageModified) {
					if (artifactId.getText().length()==0) {
						javaPackage.setText(getDefaultJavaPackage(groupId.getText(), ""));
					} else {
						javaPackage.setText(getDefaultJavaPackage(groupId.getText(), artifactId.getText()));
					}
				}
			}
		});

		label = new Label(container, SWT.NULL);
		label.setText("&Artifact Id:");

		artifactId = new Text(container, SWT.BORDER | SWT.SINGLE);
		gd = new GridData(GridData.FILL_HORIZONTAL);
		artifactId.setLayoutData(gd);
		artifactId.addModifyListener(new ModifyListener() {
			public void modifyText(ModifyEvent e) {
				dialogChanged();
				if (javaPackageModified) {
					return;
				}
				if (groupId.getText().length()==0) {
					javaPackage.setText(getDefaultJavaPackage("", artifactId.getText()));
				} else {
					javaPackage.setText(getDefaultJavaPackage(groupId.getText(), artifactId.getText()));
				}
			}
		});

		label = new Label(container, SWT.NULL);
		label.setText("&Version:");

		version = new Text(container, SWT.BORDER | SWT.SINGLE);
		gd = new GridData(GridData.FILL_HORIZONTAL);
		version.setLayoutData(gd);
		version.setText("0.0.1-SNAPSHOT");
		version.addModifyListener(new ModifyListener() {
			public void modifyText(ModifyEvent e) {
				dialogChanged();
			}
		});

		label = new Label(container, SWT.NULL);
		label.setText("&Package:");

		javaPackage = new Text(container, SWT.BORDER | SWT.SINGLE);
		gd = new GridData(GridData.FILL_HORIZONTAL);
		javaPackage.setLayoutData(gd);
		javaPackageModified = false;
		javaPackage.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent e) {
				javaPackageModified = true;
			}
		});
		javaPackage.addModifyListener(new ModifyListener() {
			public void modifyText(ModifyEvent e) {
				dialogChanged();
			}
		});
		
		label = new Label(container, SWT.NULL);
		gd = new GridData(SWT.LEFT, SWT.TOP, false, false);
		label.setLayoutData(gd);
		label.setText("&Parameters:");


	    propertiesViewer = new TableViewer(container, SWT.BORDER | SWT.FULL_SELECTION);
	    propertiesTable = propertiesViewer.getTable();
	    propertiesTable.setLinesVisible(true);
	    propertiesTable.setHeaderVisible(true);
	    propertiesTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 2));
	    
	    CellNavigationStrategy strategy = new CellNavigationStrategy();
		TableViewerFocusCellManager focusCellMgr = new TableViewerFocusCellManager(propertiesViewer,
	    		new FocusCellOwnerDrawHighlighter(propertiesViewer),
	    		strategy);
		
        ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
                propertiesViewer){

            @Override
            protected boolean isEditorActivationEvent(
                    ColumnViewerEditorActivationEvent event) {
                return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                        || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                        || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
                        || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
            }
        };
        int features = ColumnViewerEditor.TABBING_HORIZONTAL
                | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                | ColumnViewerEditor.TABBING_VERTICAL
                | ColumnViewerEditor.KEYBOARD_ACTIVATION
                | ColumnViewerEditor.KEEP_EDITOR_ON_DOUBLE_CLICK;
        TableViewerEditor.create(propertiesViewer, focusCellMgr, actSupport, features);		
		
	    
	    TableColumn propertiesTableNameColumn = new TableColumn(propertiesTable, SWT.NONE);
	    propertiesTableNameColumn.setWidth(130);
	    propertiesTableNameColumn.setText("Name");

	    TableColumn propertiesTableValueColumn = new TableColumn(propertiesTable, SWT.NONE);
	    propertiesTableValueColumn.setWidth(230);
	    propertiesTableValueColumn.setText("Value");

	    propertiesViewer.setColumnProperties(new String[] {KEY_PROPERTY, VALUE_PROPERTY});

	    propertiesViewer.setCellEditors(new CellEditor[] {new TextCellEditor(propertiesTable, SWT.NONE),
	        new TextCellEditor(propertiesTable, SWT.NONE)});
	    propertiesViewer.setCellModifier(new ICellModifier() {
	      public boolean canModify(Object element, String property) {
	        return true;
	      }

	      public void modify(Object element, String property, Object value) {
	        if(element instanceof TableItem) {
	          ((TableItem) element).setText(getTextIndex(property), String.valueOf(value));
	          dialogChanged();
	        }
	      }

	      public Object getValue(Object element, String property) {
	        if(element instanceof TableItem) {
	          return ((TableItem) element).getText(getTextIndex(property));
	        }
	        return null;
	      }
	    });		
		
		initialize();
		setPageComplete(false);
		setControl(container);
	}