Java tutorial
/* * Copyright 2012 JBoss Inc * * 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 org.guvnor.m2repo.client; import javax.inject.Inject; import com.github.gwtbootstrap.client.ui.WellForm; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyPressEvent; import com.google.gwt.event.dom.client.KeyPressHandler; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FileUpload; import com.google.gwt.user.client.ui.FormPanel; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; import org.guvnor.m2repo.client.editor.JarListEditor; import org.guvnor.m2repo.model.HTMLFileManagerFields; import org.guvnor.m2repo.service.M2RepoService; import org.jboss.errai.ioc.client.api.Caller; import org.uberfire.client.common.BusyPopup; import org.uberfire.client.common.FormStyleLayout; public class M2RepoEditorView extends Composite implements M2RepoEditorPresenter.View { private VerticalPanel layout; private WellForm form; //private FormStyleLayout emptyGAVPanel = new FormStyleLayout(); private TextBox hiddenGroupIdField = new TextBox(); private TextBox hiddenArtifactIdField = new TextBox(); private TextBox hiddenVersionIdField = new TextBox(); FormStyleLayout hiddenFieldsPanel = new FormStyleLayout(); final SimplePanel resultsP = new SimplePanel(); /* @Inject*/ private Caller<M2RepoService> m2RepoService; @Inject public M2RepoEditorView(Caller<M2RepoService> s) { this.m2RepoService = s; layout = new VerticalPanel(); doSearch(); layout.setWidth("100%"); initWidget(layout); setWidth("100%"); } private void doSearch() { VerticalPanel container = new VerticalPanel(); VerticalPanel criteria = new VerticalPanel(); FormStyleLayout ts = new FormStyleLayout(); ts.addAttribute("Upload new Jar:", doUploadForm()); final TextBox searchTextBox = new TextBox(); //tx.setWidth("100px"); ts.addAttribute("Find items with a name matching:", searchTextBox); Button go = new Button(); go.setText("Search"); ts.addAttribute("", go); ts.setWidth("100%"); final ClickHandler cl = new ClickHandler() { public void onClick(ClickEvent arg0) { resultsP.clear(); if (searchTextBox.getText() == null || searchTextBox.getText().equals("")) { JarListEditor table = new JarListEditor(m2RepoService); resultsP.add(table); } else { JarListEditor table = new JarListEditor(m2RepoService, searchTextBox.getText()); resultsP.add(table); } } }; go.addClickHandler(cl); searchTextBox.addKeyPressHandler(new KeyPressHandler() { public void onKeyPress(KeyPressEvent event) { if (event.getCharCode() == KeyCodes.KEY_ENTER) { cl.onClick(null); } } }); criteria.add(ts); container.add(criteria); container.add(resultsP); resultsP.clear(); JarListEditor table = new JarListEditor(m2RepoService); resultsP.add(table); layout.add(container); } public WellForm doUploadForm() { form = new WellForm(); form.setAction(GWT.getModuleBaseURL() + "m2repo/file"); form.setEncoding(FormPanel.ENCODING_MULTIPART); form.setMethod(FormPanel.METHOD_POST); FileUpload up = new FileUpload(); //up.setWidth("100px"); up.setName(HTMLFileManagerFields.UPLOAD_FIELD_NAME_ATTACH); Button ok = new Button("upload"); ok.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { showUploadingBusy(); submitUpload(); } }); //form.add(fields); form.addSubmitCompleteHandler(new WellForm.SubmitCompleteHandler() { public void onSubmitComplete(final WellForm.SubmitCompleteEvent event) { if ("OK".equalsIgnoreCase(event.getResults())) { BusyPopup.close(); Window.alert("Uploaded successfully"); hiddenFieldsPanel.setVisible(false); hiddenArtifactIdField.setText(null); hiddenGroupIdField.setText(null); hiddenVersionIdField.setText(null); resultsP.clear(); JarListEditor table = new JarListEditor(m2RepoService); resultsP.add(table); } else if ("NO VALID POM".equalsIgnoreCase(event.getResults())) { BusyPopup.close(); Window.alert("The Jar does not contain a valid POM file. Please specify GAV info manually."); hiddenFieldsPanel.setVisible(true); } else { BusyPopup.close(); Window.alert("Upload failed:" + event.getResults()); hiddenFieldsPanel.setVisible(false); hiddenArtifactIdField.setText(null); hiddenGroupIdField.setText(null); hiddenVersionIdField.setText(null); } } }); HorizontalPanel fields = new HorizontalPanel(); fields.add(up); fields.add(ok); hiddenGroupIdField.setName(HTMLFileManagerFields.GROUP_ID); hiddenGroupIdField.setText(null); //hiddenGroupIdField.setVisible(false); hiddenArtifactIdField.setName(HTMLFileManagerFields.ARTIFACT_ID); hiddenArtifactIdField.setText(null); //hiddenArtifactIdField.setVisible(false); hiddenVersionIdField.setName(HTMLFileManagerFields.VERSION_ID); hiddenVersionIdField.setText(null); //hiddenVersionIdField.setVisible(false); hiddenFieldsPanel.setVisible(false); hiddenFieldsPanel.addAttribute("GroupID:", hiddenGroupIdField); hiddenFieldsPanel.addAttribute("ArtifactID:", hiddenArtifactIdField); hiddenFieldsPanel.addAttribute("VersionID:", hiddenVersionIdField); VerticalPanel allFields = new VerticalPanel(); allFields.add(fields); allFields.add(hiddenFieldsPanel); form.add(allFields); return form; } protected void submitUpload() { form.submit(); } protected void showUploadingBusy() { // LoadingPopup.showMessage( "Uploading..."); } }