/** * Copyright 2005 Alcatel, OSP. * * 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.alcatel.jsce.servicecreation.ui; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; /** * Description: * <p> * * <p> * * @author Skhiri dit Gabouje Sabri * */ public class SubfolderWidget extends Composite { private Label nameLabel = null; private Text nameText = null; private Image erroImage = null; private Label errorIconLabel1 = null; private Label errorLabel = null; private String folder=""; /** * @param parent * @param style */ public SubfolderWidget(Composite parent, int style) { super(parent, style); initialize(); isPageComplete(); } private void initialize() { nameLabel = new Label(this, SWT.NONE); nameLabel.setBounds(new org.eclipse.swt.graphics.Rectangle(13,28,68,13)); nameLabel.setText("Folder Name"); nameText = new Text(this, SWT.BORDER); nameText.setBounds(new org.eclipse.swt.graphics.Rectangle(93,26,258,19)); nameText.addModifyListener(new org.eclipse.swt.events.ModifyListener() { public void modifyText(org.eclipse.swt.events.ModifyEvent e) { isPageComplete(); } }); setSize(new org.eclipse.swt.graphics.Point(469,101)); ImageDescriptor errorD = PlatformUI.getWorkbench().getSharedImages().getImageDescriptor( ISharedImages.IMG_OBJS_ERROR_TSK); erroImage = errorD.createImage(); errorIconLabel1 = new Label(this, SWT.NONE); errorIconLabel1.setBounds(new org.eclipse.swt.graphics.Rectangle(15,72,28,13)); errorIconLabel1.setImage(erroImage); errorLabel = new Label(this, SWT.NONE); errorLabel.setBounds(new org.eclipse.swt.graphics.Rectangle(67,72,366,13)); errorLabel.setText(""); } /** * @return true if the page is complete */ public boolean isPageComplete() { if(nameText.getText().length() < 1){ setErrorMessage("Set the sub directory of the catalog"); setErrorImage(true); return false; }else{ String rule2 ="(([a-z]|[A-Z]|[0-1]){1,}(/[a-z]|[A-Z]|[0-1]){0,}){1,}"; Pattern p = Pattern.compile(rule2); Matcher matcher = p.matcher(nameText.getText()); if(!matcher.matches()){ setErrorMessage("Non valid according to the rule: <String>/<String>"); setErrorImage(true); return false; } } folder = nameText.getText().replaceAll("/","\\\\"); setErrorMessage(""); setErrorImage(false); return true; } public String getFolder(){ return folder; } private void setErrorImage(boolean show) { if (show) { if (erroImage != null) { errorIconLabel1.setImage(erroImage); } else { ImageDescriptor errorD = PlatformUI.getWorkbench().getSharedImages().getImageDescriptor( ISharedImages.IMG_OBJS_ERROR_TSK); erroImage = errorD.createImage(); errorIconLabel1.setImage(erroImage); } } else { errorIconLabel1.setImage(null); } } private void setErrorMessage(String msg) { this.errorLabel.setText(msg); } } // @jve:decl-index=0:visual-constraint="10,36"