001/*
002 * ModeShape (http://www.modeshape.org)
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *       http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.modeshape.web.client.admin;
017
018import com.smartgwt.client.widgets.form.fields.CheckboxItem;
019import com.smartgwt.client.widgets.form.fields.StaticTextItem;
020import com.smartgwt.client.widgets.form.fields.TextItem;
021import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
022import org.modeshape.web.shared.BackupParams;
023import org.modeshape.web.shared.ModalDialog;
024
025/**
026 * Dialog asking backup directory.
027 * 
028 * @author kulikov
029 */
030public class BackupDialog extends ModalDialog {
031    
032    private final TextItem nameField = new TextItem("Backup name");
033    private final CheckboxItem incBinariesField = new CheckboxItem("Include binaries");
034    private final CheckboxItem compressField = new CheckboxItem("Compress files");
035    private final TextItem docsPerFileField = new TextItem("Documents per file");
036    
037    private final BackupControl control;
038    
039    public BackupDialog(BackupControl control) {
040        super("Backup", 400, 200);
041        this.control = control;
042        
043        StaticTextItem description = new StaticTextItem("");
044        description.setValue("Specify backup name");
045        
046        setDefaults();        
047        setControls(description, nameField, incBinariesField, compressField, docsPerFileField);
048    }
049    
050    private void setDefaults() {
051        incBinariesField.setValue(true);
052        compressField.setValue(true);
053        docsPerFileField.setValue("10000");
054    }
055    
056    @Override
057    public void onConfirm(ClickEvent event) {
058        //prepare clean options
059        BackupParams params = new BackupParams();
060        
061        params.setIncludeBinaries(incBinariesField.getValueAsBoolean());
062        params.setCompress(compressField.getValueAsBoolean());
063        params.setDocumentsPerFile(Long.valueOf(docsPerFileField.getValueAsString()));
064        
065        control.backup(nameField.getValueAsString(), params);
066    }
067 
068    
069}