This commit is contained in:
linchuan 2020-11-09 11:25:26 +08:00
parent 42de172d44
commit 0f4f76ebc4
1797 changed files with 346010 additions and 0 deletions

View File

@ -0,0 +1,58 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.core;
import org.eclipse.core.runtime.IProgressMonitor;
public class ProgressMonitorAdapter implements ProgressMonitorListener {
private IProgressMonitor monitor;
public ProgressMonitorAdapter( IProgressMonitor monitor ) {
this.monitor = monitor;
}
public void beginTask( String message, int nrWorks ) {
monitor.beginTask( message, nrWorks );
}
public void done() {
monitor.done();
}
public boolean isCanceled() {
return monitor.isCanceled();
}
public void subTask( String message ) {
monitor.subTask( message );
}
public void worked( int nrWorks ) {
monitor.worked( nrWorks );
}
public void setTaskName( String taskName ) {
monitor.setTaskName( taskName );
}
}

View File

@ -0,0 +1,139 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.core;
import java.awt.image.BufferedImage;
import java.util.Map;
import java.util.TreeMap;
import org.eclipse.swt.graphics.Device;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.PaletteData;
import org.eclipse.swt.graphics.RGB;
/**
* Universal image storage for SWT processing. It contains SVG or bitmap image depends on file and settings.
*/
public abstract class SwtUniversalImage {
private Map<String, Image> cache = new TreeMap<String, Image>();
@Deprecated
protected abstract Image renderSimple( Device device );
protected abstract Image renderSimple( Device device, int width, int height );
protected abstract Image renderRotated( Device device, int width, int height, double angleRadians );
public synchronized void dispose() {
if ( cache == null ) {
return;
}
for ( Image img : cache.values() ) {
if ( !img.isDisposed() ) {
img.dispose();
}
}
cache = null;
}
private void checkDisposed() {
if ( cache == null ) {
throw new RuntimeException( "Already disposed" );
}
}
/**
* @deprecated Use getAsBitmapForSize() instead.
*/
@Deprecated
public synchronized Image getAsBitmap( Device device ) {
checkDisposed();
Image result = cache.get( "" );
if ( result == null ) {
result = renderSimple( device );
cache.put( "", result );
}
return result;
}
/**
* Method getAsBitmapForSize(..., angle) can't be called, because it returns bigger picture.
*/
public synchronized Image getAsBitmapForSize( Device device, int width, int height ) {
checkDisposed();
String key = width + "x" + height;
Image result = cache.get( key );
if ( result == null ) {
result = renderSimple( device, width, height );
cache.put( key, result );
}
return result;
}
/**
* Draw rotated image on double canvas size. It required against lost corners on rotate.
*/
public synchronized Image getAsBitmapForSize( Device device, int width, int height, double angleRadians ) {
checkDisposed();
int angleDegree = (int) Math.round( Math.toDegrees( angleRadians ) );
while ( angleDegree < 0 ) {
angleDegree += 360;
}
angleDegree %= 360;
angleRadians = Math.toRadians( angleDegree );
String key = width + "x" + height + "/" + angleDegree;
Image result = cache.get( key );
if ( result == null ) {
result = renderRotated( device, width, height, angleRadians );
cache.put( key, result );
}
return result;
}
/**
* Converts BufferedImage to SWT/Image with alpha channel.
*/
protected Image swing2swt( Device device, BufferedImage img ) {
PaletteData palette = new PaletteData( 0xFF0000, 0xFF00, 0xFF );
ImageData data = new ImageData( img.getWidth(), img.getHeight(), 32, palette );
for ( int y = 0; y < data.height; y++ ) {
for ( int x = 0; x < data.width; x++ ) {
int rgba = img.getRGB( x, y );
int rgb = palette.getPixel( new RGB( ( rgba >> 16 ) & 0xFF, ( rgba >> 8 ) & 0xFF, rgba & 0xFF ) );
int a = ( rgba >> 24 ) & 0xFF;
data.setPixel( x, y, rgb );
data.setAlpha( x, y, a );
}
}
return new Image( device, data );
}
}

View File

@ -0,0 +1,81 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.core;
import org.eclipse.swt.graphics.Device;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Transform;
public class SwtUniversalImageBitmap extends SwtUniversalImage {
private final Image bitmap;
public SwtUniversalImageBitmap( Image bitmap ) {
this.bitmap = bitmap;
}
@Override
public synchronized void dispose() {
super.dispose();
if ( !bitmap.isDisposed() ) {
bitmap.dispose();
}
}
@Override
protected Image renderSimple( Device device ) {
return bitmap;
}
@Override
protected Image renderSimple( Device device, int width, int height ) {
int xsize = bitmap.getBounds().width;
int ysize = bitmap.getBounds().height;
Image result = new Image( device, width, height );
GC gc = new GC( result );
gc.drawImage( bitmap, 0, 0, xsize, ysize, 0, 0, width, height );
gc.dispose();
return result;
}
@Override
protected Image renderRotated( Device device, int width, int height, double angleRadians ) {
Image result = new Image( device, width * 2, height * 2 );
GC gc = new GC( result );
int bw = bitmap.getBounds().width;
int bh = bitmap.getBounds().height;
Transform affineTransform = new Transform( device );
affineTransform.translate( width, height );
affineTransform.rotate( (float) Math.toDegrees( angleRadians ) );
affineTransform.scale( (float) 1.0 * width / bw, (float) 1.0 * height / bh );
gc.setTransform( affineTransform );
gc.drawImage( bitmap, 0, 0, bw, bh, -bw / 2, -bh / 2, bw, bh );
gc.dispose();
return result;
}
}

View File

@ -0,0 +1,89 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.core;
import java.awt.Graphics2D;
import java.awt.geom.Dimension2D;
import java.awt.image.BufferedImage;
import org.apache.batik.bridge.BridgeContext;
import org.apache.batik.bridge.DocumentLoader;
import org.apache.batik.bridge.GVTBuilder;
import org.apache.batik.bridge.UserAgentAdapter;
import org.apache.batik.ext.awt.image.codec.png.PNGRegistryEntry;
import org.apache.batik.ext.awt.image.spi.ImageTagRegistry;
import org.apache.batik.gvt.GraphicsNode;
import org.eclipse.swt.graphics.Device;
import org.eclipse.swt.graphics.Image;
import org.pentaho.di.core.svg.SvgImage;
public class SwtUniversalImageSvg extends SwtUniversalImage {
private final GraphicsNode svgGraphicsNode;
private final Dimension2D svgGraphicsSize;
static {
// workaround due to known issue in batik 1.8 - https://issues.apache.org/jira/browse/BATIK-1125
ImageTagRegistry registry = ImageTagRegistry.getRegistry();
registry.register( new PNGRegistryEntry() );
}
public SwtUniversalImageSvg( SvgImage svg ) {
// get GraphicsNode and size from svg document
UserAgentAdapter userAgentAdapter = new UserAgentAdapter();
DocumentLoader documentLoader = new DocumentLoader( userAgentAdapter );
BridgeContext ctx = new BridgeContext( userAgentAdapter, documentLoader );
GVTBuilder builder = new GVTBuilder();
svgGraphicsNode = builder.build( ctx, svg.getDocument() );
svgGraphicsSize = ctx.getDocumentSize();
}
@Override
protected Image renderSimple( Device device ) {
return renderSimple( device, (int) Math.round( svgGraphicsSize.getWidth() ), (int) Math.round( svgGraphicsSize
.getHeight() ) );
}
@Override
protected Image renderSimple( Device device, int width, int height ) {
BufferedImage area = SwingUniversalImage.createBitmap( width, height );
Graphics2D gc = SwingUniversalImage.createGraphics( area );
SwingUniversalImageSvg.render( gc, svgGraphicsNode, svgGraphicsSize, width / 2, height / 2, width, height, 0 );
gc.dispose();
return swing2swt( device, area );
}
@Override
protected Image renderRotated( Device device, int width, int height, double angleRadians ) {
BufferedImage doubleArea = SwingUniversalImage.createDoubleBitmap( width, height );
Graphics2D gc = SwingUniversalImage.createGraphics( doubleArea );
SwingUniversalImageSvg.render( gc, svgGraphicsNode, svgGraphicsSize, doubleArea.getWidth() / 2, doubleArea
.getHeight() / 2, width, height, angleRadians );
gc.dispose();
return swing2swt( device, doubleArea );
}
}

View File

@ -0,0 +1,133 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.core;
import org.pentaho.di.core.logging.BaseLogTable;
import org.pentaho.di.core.logging.ChannelLogTable;
import org.pentaho.di.core.logging.JobEntryLogTable;
import org.pentaho.di.core.logging.JobLogTable;
import org.pentaho.di.core.logging.LogTableInterface;
import org.pentaho.di.core.logging.MetricsLogTable;
import org.pentaho.di.core.logging.PerformanceLogTable;
import org.pentaho.di.core.logging.StepLogTable;
import org.pentaho.di.core.logging.TransLogTable;
import org.pentaho.di.job.JobMeta;
import org.pentaho.di.trans.TransMeta;
import java.util.ArrayList;
import java.util.List;
/**
* Helper class that filterers information, before exporting meta to xml.
*
* @author IvanNikolaychuk
*/
public class XmlExportHelper {
/**
* When exporting meta we should not export user global parameters.
* Method makes clone for each table and deletes all global parameters.
* We have to make clones of each table, because we don't want to change real tables content.
*
* @param transMeta
* meta, that contains log tables to be refactored before export
*/
public static void swapTables( TransMeta transMeta ) {
TransLogTable transLogTable = transMeta.getTransLogTable();
if ( transLogTable != null ) {
TransLogTable cloneTransLogTable = (TransLogTable) transLogTable.clone();
cloneTransLogTable.setAllGlobalParametersToNull();
transMeta.setTransLogTable( cloneTransLogTable );
}
StepLogTable stepLogTable = transMeta.getStepLogTable();
if ( stepLogTable != null ) {
StepLogTable cloneStepLogTable = (StepLogTable) stepLogTable.clone();
cloneStepLogTable.setAllGlobalParametersToNull();
transMeta.setStepLogTable( cloneStepLogTable );
}
PerformanceLogTable performanceLogTable = transMeta.getPerformanceLogTable();
if ( performanceLogTable != null ) {
PerformanceLogTable clonePerformanceLogTable = (PerformanceLogTable) performanceLogTable.clone();
clonePerformanceLogTable.setAllGlobalParametersToNull();
transMeta.setPerformanceLogTable( clonePerformanceLogTable );
}
ChannelLogTable channelLogTable = transMeta.getChannelLogTable();
if ( channelLogTable != null ) {
ChannelLogTable cloneChannelLogTable = (ChannelLogTable) channelLogTable.clone();
cloneChannelLogTable.setAllGlobalParametersToNull();
transMeta.setChannelLogTable( cloneChannelLogTable );
}
MetricsLogTable metricsLogTable = transMeta.getMetricsLogTable();
if ( metricsLogTable != null ) {
MetricsLogTable cloneMetricsLogTable = (MetricsLogTable) metricsLogTable.clone();
cloneMetricsLogTable.setAllGlobalParametersToNull();
transMeta.setMetricsLogTable( cloneMetricsLogTable );
}
}
/**
* @param jobMeta
* contains log tables to be refactored before export
*/
public static void swapTables( JobMeta jobMeta ) {
JobLogTable jobLogTable = jobMeta.getJobLogTable();
if ( jobLogTable != null ) {
JobLogTable cloneJobLogTable = (JobLogTable) jobLogTable.clone();
cloneJobLogTable.setAllGlobalParametersToNull();
jobMeta.setJobLogTable( cloneJobLogTable );
}
JobEntryLogTable jobEntryLogTable = jobMeta.getJobEntryLogTable();
if ( jobEntryLogTable != null ) {
JobEntryLogTable cloneEntryLogTable = (JobEntryLogTable) jobEntryLogTable.clone();
cloneEntryLogTable.setAllGlobalParametersToNull();
jobMeta.setJobEntryLogTable( cloneEntryLogTable );
}
ChannelLogTable channelLogTable = jobMeta.getChannelLogTable();
if ( channelLogTable != null ) {
ChannelLogTable cloneChannelLogTable = (ChannelLogTable) channelLogTable.clone();
cloneChannelLogTable.setAllGlobalParametersToNull();
jobMeta.setChannelLogTable( cloneChannelLogTable );
}
List<LogTableInterface> extraLogTables = jobMeta.getExtraLogTables();
if ( extraLogTables != null ) {
List<LogTableInterface> cloneExtraLogTables = new ArrayList<>();
for ( LogTableInterface logTable : extraLogTables ) {
if ( logTable instanceof BaseLogTable ) {
if ( logTable instanceof Cloneable ) {
BaseLogTable cloneExtraLogTable = (BaseLogTable) logTable.clone();
cloneExtraLogTable.setAllGlobalParametersToNull();
cloneExtraLogTables.add( (LogTableInterface) cloneExtraLogTable );
}
}
}
jobMeta.setExtraLogTables( cloneExtraLogTables );
}
}
}

View File

@ -0,0 +1,180 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2018 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.core.dnd;
import java.io.UnsupportedEncodingException;
import org.apache.commons.codec.binary.Base64;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.exception.KettleXMLException;
import org.pentaho.di.core.xml.XMLHandler;
import org.pentaho.di.core.xml.XMLInterface;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
/**
* This class contains code to help you drag data from one part of a GUI to another by using XML as an intermediate
* step.
*
* @author matt
* @since 2006-04-16
*
*/
public class DragAndDropContainer implements XMLInterface {
public static final int TYPE_STEP = 1;
public static final int TYPE_BASE_STEP_TYPE = 2;
public static final int TYPE_DATABASE_CONNECTION = 3;
public static final int TYPE_TRANS_HOP = 4;
public static final int TYPE_TEXT = 5;
public static final int TYPE_JOB_ENTRY = 6;
public static final int TYPE_BASE_JOB_ENTRY = 7;
public static final int TYPE_PHYSICAL_TABLE = 8;
public static final int TYPE_PHYSICAL_COLUMN = 9;
public static final int TYPE_BUSINESS_VIEW = 10;
public static final int TYPE_BUSINESS_TABLE = 11;
public static final int TYPE_BUSINESS_COLUMN = 12;
public static final int TYPE_RELATIONSHIP = 13;
public static final int TYPE_BUSINESS_MODEL = 14;
private static final String[] typeCodes = {
"", "Step", "BaseStep", "DatabaseConnection", "TransHop", "Text", "Jobentry", "BaseJobentry",
"PhysicalTable", "PhysicalColumn", "BusinessView", "BusinessTable", "BusinessColumn", "Relationship",
"Business Model" };
private static final String XML_TAG = "DragAndDrop";
private int type;
private String id;
private String data;
/**
* Create a new DragAndDropContainer
*
* @param type
* The type of drag&drop to perform
* @param data
* The data in the form of a String
*/
public DragAndDropContainer( int type, String data ) {
this( type, data, null );
}
/**
* Create a new DragAndDropContainer
*
* @param type
* The type of drag&drop to perform
* @param data
* The data in the form of a String
* @param id
* The id of the step in the form of a String
*/
public DragAndDropContainer( int type, String data, String id ) {
this.type = type;
this.data = data;
this.id = id;
}
public int getType() {
return type;
}
public void setType( int type ) {
this.type = type;
}
public String getData() {
return data;
}
public void setData( String data ) {
this.data = data;
}
public String getId() {
return id;
}
public void setId( String id ) {
this.id = id;
}
public String getTypeCode() {
if ( type <= 0 || type >= typeCodes.length ) {
return null;
}
return typeCodes[type];
}
public static final int getType( String typeCode ) {
for ( int i = 1; i < typeCodes.length; i++ ) {
if ( typeCodes[i].equals( typeCode ) ) {
return i;
}
}
return 0;
}
public String getXML() {
try {
StringBuilder xml = new StringBuilder( 100 );
xml.append( XMLHandler.getXMLHeader() ); // UFT-8 XML header
xml.append( XMLHandler.openTag( XML_TAG ) ).append( Const.CR );
if ( id != null ) {
xml.append( " " ).append( XMLHandler.addTagValue( "ID", id ) );
}
xml.append( " " ).append( XMLHandler.addTagValue( "DragType", getTypeCode() ) );
xml.append( " " ).append(
XMLHandler
.addTagValue( "Data", new String( Base64.encodeBase64( data.getBytes( Const.XML_ENCODING ) ) ) ) );
xml.append( XMLHandler.closeTag( XML_TAG ) ).append( Const.CR );
return xml.toString();
} catch ( UnsupportedEncodingException e ) {
throw new RuntimeException( "Unable to encode String in encoding [" + Const.XML_ENCODING + "]", e );
}
}
/**
* Construct a Drag and drop container from an XML String
*
* @param xml
* The XML string to convert from
*/
public DragAndDropContainer( String xml ) throws KettleXMLException {
try {
Document doc = XMLHandler.loadXMLString( xml );
Node dnd = XMLHandler.getSubNode( doc, XML_TAG );
id = XMLHandler.getTagValue( dnd, "ID" );
type = getType( XMLHandler.getTagValue( dnd, "DragType" ) );
data =
new String( Base64.decodeBase64( XMLHandler.getTagValue( dnd, "Data" ).getBytes() ), Const.XML_ENCODING );
} catch ( Exception e ) {
throw new KettleXMLException( "Unexpected error parsing Drag & Drop XML fragment: " + xml, e );
}
}
}

View File

@ -0,0 +1,99 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.core.dnd;
import org.apache.commons.codec.binary.Base64;
import org.eclipse.swt.dnd.ByteArrayTransfer;
import org.eclipse.swt.dnd.TransferData;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.logging.LogChannel;
import org.pentaho.di.core.logging.LogChannelInterface;
public class XMLTransfer extends ByteArrayTransfer {
private static final String MYTYPENAME = "KETTLE_XML_TRANSFER";
private static final int MYTYPEID = registerType( MYTYPENAME );
private static XMLTransfer _instance = new XMLTransfer();
private LogChannelInterface log;
private XMLTransfer() {
this.log = new LogChannel( "XML DND Transfer" );
}
public static XMLTransfer getInstance() {
return _instance;
}
public void javaToNative( Object object, TransferData transferData ) {
if ( !checkMyType( object ) ) {
return; // DND.error(DND.ERROR_INVALID_DATA);
}
try {
byte[] buffer =
Base64.encodeBase64( ( (DragAndDropContainer) object ).getXML().getBytes( Const.XML_ENCODING ) );
super.javaToNative( buffer, transferData );
} catch ( Exception e ) {
log.logError( "Unexpected error trying to put a string onto the XML Transfer type: " + e.toString() );
log.logError( Const.getStackTracker( e ) );
return;
}
}
boolean checkMyType( Object object ) {
if ( object == null || !( object instanceof DragAndDropContainer ) ) {
return false;
}
// System.out.println("Object class: "+object.getClass().toString());
return true;
}
public Object nativeToJava( TransferData transferData ) {
if ( isSupportedType( transferData ) ) {
try {
byte[] buffer = (byte[]) super.nativeToJava( transferData );
String xml = new String( Base64.decodeBase64( new String( buffer ).getBytes() ) );
return new DragAndDropContainer( xml );
} catch ( Exception e ) {
log.logError( "Unexpected error trying to read a drag and drop container from the XML Transfer type: "
+ e.toString() );
log.logError( Const.getStackTracker( e ) );
return null;
}
}
return null;
}
protected String[] getTypeNames() {
return new String[] { MYTYPENAME };
}
protected int[] getTypeIds() {
return new int[] { MYTYPEID };
}
}

View File

@ -0,0 +1,52 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.core.vfs;
import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystemOptions;
import org.pentaho.di.core.exception.KettleFileException;
import org.pentaho.vfs.ui.VfsResolver;
/**
* @author Andrey Khayrutdinov
*/
public class KettleVfsDelegatingResolver implements VfsResolver {
@Override
public FileObject resolveFile( String vfsUrl ) {
try {
return KettleVFS.getFileObject( vfsUrl );
} catch ( KettleFileException e ) {
throw new RuntimeException( e );
}
}
@Override
public FileObject resolveFile( String vfsUrl, FileSystemOptions fsOptions ) {
try {
return KettleVFS.getFileObject( vfsUrl, fsOptions );
} catch ( KettleFileException e ) {
throw new RuntimeException( e );
}
}
}

View File

@ -0,0 +1,518 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.cluster.dialog;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.ShellAdapter;
import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.pentaho.di.cluster.ClusterSchema;
import org.pentaho.di.cluster.SlaveServer;
import org.pentaho.di.core.Const;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.PropsUI;
import org.pentaho.di.ui.core.dialog.EnterSelectionDialog;
import org.pentaho.di.ui.core.gui.GUIResource;
import org.pentaho.di.ui.core.gui.WindowProperty;
import org.pentaho.di.ui.core.widget.ColumnInfo;
import org.pentaho.di.ui.core.widget.TableView;
import org.pentaho.di.ui.core.widget.TextVar;
import org.pentaho.di.ui.trans.step.BaseStepDialog;
import org.pentaho.di.ui.util.DialogUtils;
/**
*
* Dialog that allows you to edit the settings of the cluster schema
*
* @see ClusterSchema
* @author Matt
* @since 17-11-2006
*
*/
public class ClusterSchemaDialog extends Dialog {
private static Class<?> PKG = ClusterSchemaDialog.class; // for i18n purposes, needed by Translator2!!
// private static LogWriter log = LogWriter.getInstance();
private ClusterSchema clusterSchema;
private Collection<ClusterSchema> existingSchemas;
private Shell shell;
// Name
private Text wName;
// Servers
private TableView wServers;
private Button wOK, wCancel;
private ModifyListener lsMod;
private PropsUI props;
private int middle;
private int margin;
private ClusterSchema originalSchema;
private boolean ok;
private Button wSelect;
private TextVar wPort;
private TextVar wBufferSize;
private TextVar wFlushInterval;
private Button wCompressed;
private Button wDynamic;
private List<SlaveServer> slaveServers;
public ClusterSchemaDialog( Shell par, ClusterSchema clusterSchema, Collection<ClusterSchema> existingSchemas,
List<SlaveServer> slaveServers ) {
super( par, SWT.NONE );
this.clusterSchema = clusterSchema.clone();
this.originalSchema = clusterSchema;
this.existingSchemas = existingSchemas;
this.slaveServers = slaveServers;
props = PropsUI.getInstance();
ok = false;
}
public ClusterSchemaDialog( Shell par, ClusterSchema clusterSchema, List<SlaveServer> slaveServers ) {
this( par, clusterSchema, Collections.<ClusterSchema>emptyList(), slaveServers );
}
public boolean open() {
Shell parent = getParent();
shell = new Shell( parent, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MAX | SWT.MIN );
props.setLook( shell );
shell.setImage( GUIResource.getInstance().getImageCluster() );
lsMod = new ModifyListener() {
public void modifyText( ModifyEvent e ) {
clusterSchema.setChanged();
}
};
middle = props.getMiddlePct();
margin = Const.MARGIN;
FormLayout formLayout = new FormLayout();
formLayout.marginWidth = Const.FORM_MARGIN;
formLayout.marginHeight = Const.FORM_MARGIN;
shell.setText( BaseMessages.getString( PKG, "ClusterSchemaDialog.Shell.Title" ) );
shell.setLayout( formLayout );
// First, add the buttons...
// Buttons
wOK = new Button( shell, SWT.PUSH );
wOK.setText( BaseMessages.getString( PKG, "System.Button.OK" ) );
wCancel = new Button( shell, SWT.PUSH );
wCancel.setText( BaseMessages.getString( PKG, "System.Button.Cancel" ) );
Button[] buttons = new Button[] { wOK, wCancel };
BaseStepDialog.positionBottomButtons( shell, buttons, margin, null );
// The rest stays above the buttons, so we added those first...
// What's the schema name??
Label wlName = new Label( shell, SWT.RIGHT );
props.setLook( wlName );
wlName.setText( BaseMessages.getString( PKG, "ClusterSchemaDialog.Schema.Label" ) );
FormData fdlName = new FormData();
fdlName.top = new FormAttachment( 0, 0 );
fdlName.left = new FormAttachment( 0, 0 ); // First one in the left top corner
fdlName.right = new FormAttachment( middle, 0 );
wlName.setLayoutData( fdlName );
wName = new Text( shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER );
props.setLook( wName );
wName.addModifyListener( lsMod );
FormData fdName = new FormData();
fdName.top = new FormAttachment( 0, 0 );
fdName.left = new FormAttachment( middle, margin ); // To the right of the label
fdName.right = new FormAttachment( 95, 0 );
wName.setLayoutData( fdName );
// What's the base port??
Label wlPort = new Label( shell, SWT.RIGHT );
props.setLook( wlPort );
wlPort.setText( BaseMessages.getString( PKG, "ClusterSchemaDialog.Port.Label" ) );
FormData fdlPort = new FormData();
fdlPort.top = new FormAttachment( wName, margin );
fdlPort.left = new FormAttachment( 0, 0 ); // First one in the left top corner
fdlPort.right = new FormAttachment( middle, 0 );
wlPort.setLayoutData( fdlPort );
wPort = new TextVar( clusterSchema, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER );
props.setLook( wPort );
wPort.addModifyListener( lsMod );
FormData fdPort = new FormData();
fdPort.top = new FormAttachment( wName, margin );
fdPort.left = new FormAttachment( middle, margin ); // To the right of the label
fdPort.right = new FormAttachment( 95, 0 );
wPort.setLayoutData( fdPort );
// What are the sockets buffer sizes??
Label wlBufferSize = new Label( shell, SWT.RIGHT );
props.setLook( wlBufferSize );
wlBufferSize.setText( BaseMessages.getString( PKG, "ClusterSchemaDialog.SocketBufferSize.Label" ) );
FormData fdlBufferSize = new FormData();
fdlBufferSize.top = new FormAttachment( wPort, margin );
fdlBufferSize.left = new FormAttachment( 0, 0 ); // First one in the left top corner
fdlBufferSize.right = new FormAttachment( middle, 0 );
wlBufferSize.setLayoutData( fdlBufferSize );
wBufferSize = new TextVar( clusterSchema, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER );
props.setLook( wBufferSize );
wBufferSize.addModifyListener( lsMod );
FormData fdBufferSize = new FormData();
fdBufferSize.top = new FormAttachment( wPort, margin );
fdBufferSize.left = new FormAttachment( middle, margin ); // To the right of the label
fdBufferSize.right = new FormAttachment( 95, 0 );
wBufferSize.setLayoutData( fdBufferSize );
// What are the sockets buffer sizes??
Label wlFlushInterval = new Label( shell, SWT.RIGHT );
props.setLook( wlFlushInterval );
wlFlushInterval.setText( BaseMessages.getString( PKG, "ClusterSchemaDialog.SocketFlushRows.Label" ) );
FormData fdlFlushInterval = new FormData();
fdlFlushInterval.top = new FormAttachment( wBufferSize, margin );
fdlFlushInterval.left = new FormAttachment( 0, 0 ); // First one in the left top corner
fdlFlushInterval.right = new FormAttachment( middle, 0 );
wlFlushInterval.setLayoutData( fdlFlushInterval );
wFlushInterval = new TextVar( clusterSchema, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER );
props.setLook( wFlushInterval );
wFlushInterval.addModifyListener( lsMod );
FormData fdFlushInterval = new FormData();
fdFlushInterval.top = new FormAttachment( wBufferSize, margin );
fdFlushInterval.left = new FormAttachment( middle, margin ); // To the right of the label
fdFlushInterval.right = new FormAttachment( 95, 0 );
wFlushInterval.setLayoutData( fdFlushInterval );
// What are the sockets buffer sizes??
Label wlCompressed = new Label( shell, SWT.RIGHT );
props.setLook( wlCompressed );
wlCompressed.setText( BaseMessages.getString( PKG, "ClusterSchemaDialog.SocketDataCompressed.Label" ) );
FormData fdlCompressed = new FormData();
fdlCompressed.top = new FormAttachment( wFlushInterval, margin );
fdlCompressed.left = new FormAttachment( 0, 0 ); // First one in the left top corner
fdlCompressed.right = new FormAttachment( middle, 0 );
wlCompressed.setLayoutData( fdlCompressed );
wCompressed = new Button( shell, SWT.CHECK );
props.setLook( wCompressed );
FormData fdCompressed = new FormData();
fdCompressed.top = new FormAttachment( wFlushInterval, margin );
fdCompressed.left = new FormAttachment( middle, margin ); // To the right of the label
fdCompressed.right = new FormAttachment( 95, 0 );
wCompressed.setLayoutData( fdCompressed );
// What are the sockets buffer sizes??
Label wlDynamic = new Label( shell, SWT.RIGHT );
wlDynamic.setToolTipText( BaseMessages.getString( PKG, "ClusterSchemaDialog.DynamicCluster.Tooltip" ) );
props.setLook( wlDynamic );
wlDynamic.setText( BaseMessages.getString( PKG, "ClusterSchemaDialog.DynamicCluster.Label" ) );
FormData fdlDynamic = new FormData();
fdlDynamic.top = new FormAttachment( wCompressed, margin );
fdlDynamic.left = new FormAttachment( 0, 0 ); // First one in the left top corner
fdlDynamic.right = new FormAttachment( middle, 0 );
wlDynamic.setLayoutData( fdlDynamic );
wDynamic = new Button( shell, SWT.CHECK );
wDynamic.setToolTipText( BaseMessages.getString( PKG, "ClusterSchemaDialog.DynamicCluster.Tooltip" ) );
props.setLook( wDynamic );
FormData fdDynamic = new FormData();
fdDynamic.top = new FormAttachment( wCompressed, margin );
fdDynamic.left = new FormAttachment( middle, margin ); // To the right of the label
fdDynamic.right = new FormAttachment( 95, 0 );
wDynamic.setLayoutData( fdDynamic );
// Schema servers:
Label wlServers = new Label( shell, SWT.RIGHT );
wlServers.setText( BaseMessages.getString( PKG, "ClusterSchemaDialog.SlaveServers.Label" ) );
props.setLook( wlServers );
FormData fdlServers = new FormData();
fdlServers.left = new FormAttachment( 0, 0 );
fdlServers.right = new FormAttachment( middle, 0 );
fdlServers.top = new FormAttachment( wDynamic, margin );
wlServers.setLayoutData( fdlServers );
// Some buttons to manage...
wSelect = new Button( shell, SWT.PUSH );
wSelect.setText( BaseMessages.getString( PKG, "ClusterSchemaDialog.SelectSlaveServers.Label" ) );
props.setLook( wSelect );
FormData fdSelect = new FormData();
fdSelect.right = new FormAttachment( 100, 0 );
fdSelect.top = new FormAttachment( wlServers, 5 * margin );
wSelect.setLayoutData( fdSelect );
wSelect.addSelectionListener( new SelectionAdapter() {
public void widgetSelected( SelectionEvent e ) {
selectSlaveServers();
}
} );
ColumnInfo[] partitionColumns =
new ColumnInfo[] {
new ColumnInfo(
BaseMessages.getString( PKG, "ClusterSchemaDialog.ColumnInfoName.Label" ),
ColumnInfo.COLUMN_TYPE_TEXT, true, false ),
new ColumnInfo(
BaseMessages.getString( PKG, "ClusterSchemaDialog.ColumnInfoServiceURL.Label" ),
ColumnInfo.COLUMN_TYPE_TEXT, true, true ),
new ColumnInfo(
BaseMessages.getString( PKG, "ClusterSchemaDialog.ColumnInfoMaster.Label" ),
ColumnInfo.COLUMN_TYPE_TEXT, true, true ), };
wServers =
new TableView(
clusterSchema, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.SINGLE, partitionColumns, 1, lsMod, props );
wServers.setReadonly( false );
props.setLook( wServers );
FormData fdServers = new FormData();
fdServers.left = new FormAttachment( middle, margin );
fdServers.right = new FormAttachment( wSelect, -2 * margin );
fdServers.top = new FormAttachment( wDynamic, margin );
fdServers.bottom = new FormAttachment( wOK, -margin * 2 );
wServers.setLayoutData( fdServers );
wServers.table.addSelectionListener( new SelectionAdapter() {
public void widgetDefaultSelected( SelectionEvent e ) {
editSlaveServer();
}
} );
// Add listeners
wOK.addListener( SWT.Selection, new Listener() {
public void handleEvent( Event e ) {
ok();
}
} );
wCancel.addListener( SWT.Selection, new Listener() {
public void handleEvent( Event e ) {
cancel();
}
} );
SelectionAdapter selAdapter = new SelectionAdapter() {
public void widgetDefaultSelected( SelectionEvent e ) {
ok();
}
};
wName.addSelectionListener( selAdapter );
wPort.addSelectionListener( selAdapter );
wBufferSize.addSelectionListener( selAdapter );
wFlushInterval.addSelectionListener( selAdapter );
// Detect X or ALT-F4 or something that kills this window...
shell.addShellListener( new ShellAdapter() {
public void shellClosed( ShellEvent e ) {
cancel();
}
} );
getData();
BaseStepDialog.setSize( shell );
shell.open();
Display display = parent.getDisplay();
while ( !shell.isDisposed() ) {
if ( !display.readAndDispatch() ) {
display.sleep();
}
}
return ok;
}
private void editSlaveServer() {
int idx = wServers.getSelectionIndex();
if ( idx >= 0 ) {
SlaveServer slaveServer = clusterSchema.findSlaveServer( wServers.getItems( 0 )[idx] );
if ( slaveServer != null ) {
SlaveServerDialog dialog = new SlaveServerDialog( shell, slaveServer, slaveServers );
if ( dialog.open() ) {
refreshSlaveServers();
}
}
}
}
private void selectSlaveServers() {
String[] names = SlaveServer.getSlaveServerNames( slaveServers );
int[] idx = Const.indexsOfFoundStrings( wServers.getItems( 0 ), names );
EnterSelectionDialog dialog =
new EnterSelectionDialog( shell, names,
BaseMessages.getString( PKG, "ClusterSchemaDialog.SelectServers.Label" ),
BaseMessages.getString( PKG, "ClusterSchemaDialog.SelectServersCluster.Label" ) );
dialog.setAvoidQuickSearch();
dialog.setSelectedNrs( idx );
dialog.setMulti( true );
if ( dialog.open() != null ) {
clusterSchema.getSlaveServers().clear();
int[] indeces = dialog.getSelectionIndeces();
for ( int i = 0; i < indeces.length; i++ ) {
SlaveServer slaveServer = SlaveServer.findSlaveServer( slaveServers, names[indeces[i]] );
clusterSchema.getSlaveServers().add( slaveServer );
}
refreshSlaveServers();
}
}
public void dispose() {
props.setScreen( new WindowProperty( shell ) );
shell.dispose();
}
public void getData() {
wName.setText( Const.NVL( clusterSchema.getName(), "" ) );
wPort.setText( Const.NVL( clusterSchema.getBasePort(), "" ) );
wBufferSize.setText( Const.NVL( clusterSchema.getSocketsBufferSize(), "" ) );
wFlushInterval.setText( Const.NVL( clusterSchema.getSocketsFlushInterval(), "" ) );
wCompressed.setSelection( clusterSchema.isSocketsCompressed() );
wDynamic.setSelection( clusterSchema.isDynamic() );
refreshSlaveServers();
wName.setFocus();
}
private void refreshSlaveServers() {
wServers.clearAll( false );
List<SlaveServer> slServers = clusterSchema.getSlaveServers();
for ( int i = 0; i < slServers.size(); i++ ) {
TableItem item = new TableItem( wServers.table, SWT.NONE );
SlaveServer slaveServer = slServers.get( i );
item.setText( 1, Const.NVL( slaveServer.getName(), "" ) );
item.setText( 2, Const.NVL( slaveServer.toString(), "" ) );
item.setText( 3, slaveServer.isMaster() ? "Y" : "N" );
}
wServers.removeEmptyRows();
wServers.setRowNums();
wServers.optWidth( true );
}
private void cancel() {
originalSchema = null;
dispose();
}
public void ok() {
getInfo();
if ( !clusterSchema.getName().equals( originalSchema.getName() ) ) {
if ( DialogUtils.objectWithTheSameNameExists( clusterSchema, existingSchemas ) ) {
String title = BaseMessages.getString( PKG, "ClusterSchemaDialog.ClusterSchemaNameExists.Title" );
String message =
BaseMessages.getString( PKG, "ClusterSchemaDialog.ClusterSchemaNameExists", clusterSchema.getName() );
String okButton = BaseMessages.getString( PKG, "System.Button.OK" );
MessageDialog dialog =
new MessageDialog( shell, title, null, message, MessageDialog.ERROR, new String[] { okButton }, 0 );
dialog.open();
return;
}
}
originalSchema.setName( clusterSchema.getName() );
originalSchema.setBasePort( clusterSchema.getBasePort() );
originalSchema.setSocketsBufferSize( clusterSchema.getSocketsBufferSize() );
originalSchema.setSocketsFlushInterval( clusterSchema.getSocketsFlushInterval() );
originalSchema.setSocketsCompressed( clusterSchema.isSocketsCompressed() );
originalSchema.setDynamic( clusterSchema.isDynamic() );
originalSchema.setSlaveServers( clusterSchema.getSlaveServers() );
originalSchema.setChanged();
ok = true;
// Debug: dynamic lis names/urls of slaves on the console
//
/*
* if (originalSchema.isDynamic()) { // Find a master that is available // List<SlaveServer> dynamicSlaves = null;
* for (SlaveServer slave : originalSchema.getSlaveServers()) { if (slave.isMaster() && dynamicSlaves==null) { try {
* List<SlaveServerDetection> detections = slave.getSlaveServerDetections(); dynamicSlaves = new
* ArrayList<SlaveServer>(); for (SlaveServerDetection detection : detections) { if (detection.isActive()) {
* dynamicSlaves.add(detection.getSlaveServer());
* logBasic("Found dynamic slave : "+detection.getSlaveServer().getName
* ()+" --> "+detection.getSlaveServer().getServerAndPort()); } } } catch (Exception e) {
* logError("Unable to contact master : "+slave.getName()+" --> "+slave.getServerAndPort(), e); } } } }
*/
dispose();
}
private void getInfo() {
clusterSchema.setName( wName.getText() );
clusterSchema.setBasePort( wPort.getText() );
clusterSchema.setSocketsBufferSize( wBufferSize.getText() );
clusterSchema.setSocketsFlushInterval( wFlushInterval.getText() );
clusterSchema.setSocketsCompressed( wCompressed.getSelection() );
clusterSchema.setDynamic( wDynamic.getSelection() );
String[] names = SlaveServer.getSlaveServerNames( slaveServers );
int[] idx = Const.indexsOfFoundStrings( wServers.getItems( 0 ), names );
clusterSchema.getSlaveServers().clear();
for ( int i = 0; i < idx.length; i++ ) {
SlaveServer slaveServer = SlaveServer.findSlaveServer( slaveServers, names[idx[i]] );
clusterSchema.getSlaveServers().add( slaveServer );
}
}
@Override
public String toString() {
return getClass().getSimpleName();
}
}

View File

@ -0,0 +1,606 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2018 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.cluster.dialog;
import java.util.Collection;
import java.util.Collections;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.ShellAdapter;
import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.pentaho.di.cluster.SlaveServer;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.Props;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.PropsUI;
import org.pentaho.di.ui.core.dialog.EnterTextDialog;
import org.pentaho.di.ui.core.dialog.ErrorDialog;
import org.pentaho.di.ui.core.gui.GUIResource;
import org.pentaho.di.ui.core.gui.WindowProperty;
import org.pentaho.di.ui.core.widget.PasswordTextVar;
import org.pentaho.di.ui.core.widget.TextVar;
import org.pentaho.di.ui.trans.step.BaseStepDialog;
import org.pentaho.di.ui.util.DialogUtils;
import org.pentaho.di.www.RegisterTransServlet;
/**
*
* Dialog that allows you to edit the settings of the security service connection
*
* @see SlaveServer
* @author Matt
* @since 31-10-2006
*
*/
public class SlaveServerDialog extends Dialog {
private static Class<?> PKG = SlaveServerDialog.class; // for i18n purposes, needed by Translator2!!
private SlaveServer slaveServer;
private Collection<SlaveServer> existingServers;
private CTabFolder wTabFolder;
private FormData fdTabFolder;
private CTabItem wServiceTab, wProxyTab;
private Composite wServiceComp, wProxyComp;
private FormData fdServiceComp, fdProxyComp;
private Shell shell;
// Service
private Text wName;
private TextVar wHostname, wPort, wWebAppName, wUsername, wPassword;
private Button wMaster;
private Button wSSL;
// Proxy
private TextVar wProxyHost, wProxyPort, wNonProxyHosts;
private Button wOK, wCancel;
private ModifyListener lsMod;
private PropsUI props;
private int middle;
private int margin;
private SlaveServer originalServer;
private boolean ok;
public SlaveServerDialog( Shell par, SlaveServer slaveServer, Collection<SlaveServer> existingServers ) {
super( par, SWT.NONE );
this.slaveServer = (SlaveServer) slaveServer.clone();
this.slaveServer.shareVariablesWith( slaveServer );
this.originalServer = slaveServer;
this.existingServers = existingServers;
props = PropsUI.getInstance();
ok = false;
}
public SlaveServerDialog( Shell par, SlaveServer slaveServer ) {
this( par, slaveServer, Collections.<SlaveServer>emptyList() );
}
public boolean open() {
Shell parent = getParent();
shell = new Shell( parent, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MAX | SWT.MIN );
props.setLook( shell );
shell.setImage( GUIResource.getInstance().getImageSlave() );
lsMod = new ModifyListener() {
public void modifyText( ModifyEvent e ) {
slaveServer.setChanged();
}
};
middle = props.getMiddlePct();
margin = Const.MARGIN;
FormLayout formLayout = new FormLayout();
formLayout.marginWidth = Const.FORM_MARGIN;
formLayout.marginHeight = Const.FORM_MARGIN;
shell.setText( BaseMessages.getString( PKG, "SlaveServerDialog.Shell.Title" ) );
shell.setLayout( formLayout );
// First, add the buttons...
// Buttons
wOK = new Button( shell, SWT.PUSH );
wOK.setText( BaseMessages.getString( PKG, "System.Button.OK" ) );
wCancel = new Button( shell, SWT.PUSH );
wCancel.setText( BaseMessages.getString( PKG, "System.Button.Cancel" ) );
Button[] buttons = new Button[] { wOK, wCancel };
BaseStepDialog.positionBottomButtons( shell, buttons, margin, null );
// The rest stays above the buttons...
wTabFolder = new CTabFolder( shell, SWT.BORDER );
props.setLook( wTabFolder, Props.WIDGET_STYLE_TAB );
addServiceTab();
addProxyTab();
fdTabFolder = new FormData();
fdTabFolder.left = new FormAttachment( 0, 0 );
fdTabFolder.top = new FormAttachment( 0, margin );
fdTabFolder.right = new FormAttachment( 100, 0 );
fdTabFolder.bottom = new FormAttachment( wOK, -margin );
wTabFolder.setLayoutData( fdTabFolder );
// Add listeners
wOK.addListener( SWT.Selection, new Listener() {
public void handleEvent( Event e ) {
ok();
}
} );
wCancel.addListener( SWT.Selection, new Listener() {
public void handleEvent( Event e ) {
cancel();
}
} );
SelectionAdapter selAdapter = new SelectionAdapter() {
public void widgetDefaultSelected( SelectionEvent e ) {
ok();
}
};
wUsername.addSelectionListener( selAdapter );
wPassword.addSelectionListener( selAdapter );
wHostname.addSelectionListener( selAdapter );
wPort.addSelectionListener( selAdapter );
wWebAppName.addSelectionListener( selAdapter );
wProxyHost.addSelectionListener( selAdapter );
wProxyPort.addSelectionListener( selAdapter );
wNonProxyHosts.addSelectionListener( selAdapter );
// Detect X or ALT-F4 or something that kills this window...
shell.addShellListener( new ShellAdapter() {
public void shellClosed( ShellEvent e ) {
cancel();
}
} );
wTabFolder.setSelection( 0 );
getData();
BaseStepDialog.setSize( shell );
shell.open();
Display display = parent.getDisplay();
while ( !shell.isDisposed() ) {
if ( !display.readAndDispatch() ) {
display.sleep();
}
}
return ok;
}
private void addServiceTab() {
// ////////////////////////
// START OF DB TAB ///
// ////////////////////////
wServiceTab = new CTabItem( wTabFolder, SWT.NONE );
wServiceTab.setText( BaseMessages.getString( PKG, "SlaveServerDialog.USER_TAB_SERVICE" ) );
wServiceComp = new Composite( wTabFolder, SWT.NONE );
props.setLook( wServiceComp );
FormLayout GenLayout = new FormLayout();
GenLayout.marginWidth = Const.FORM_MARGIN;
GenLayout.marginHeight = Const.FORM_MARGIN;
wServiceComp.setLayout( GenLayout );
// What's the name
Label wlName = new Label( wServiceComp, SWT.RIGHT );
props.setLook( wlName );
wlName.setText( BaseMessages.getString( PKG, "SlaveServerDialog.ServerName.Label" ) );
FormData fdlName = new FormData();
fdlName.top = new FormAttachment( 0, 0 );
fdlName.left = new FormAttachment( 0, 0 ); // First one in the left top corner
fdlName.right = new FormAttachment( middle, -margin );
wlName.setLayoutData( fdlName );
wName = new Text( wServiceComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER );
props.setLook( wName );
wName.addModifyListener( lsMod );
FormData fdName = new FormData();
fdName.top = new FormAttachment( 0, 0 );
fdName.left = new FormAttachment( middle, 0 ); // To the right of the label
fdName.right = new FormAttachment( 95, 0 );
wName.setLayoutData( fdName );
// What's the hostname
Label wlHostname = new Label( wServiceComp, SWT.RIGHT );
props.setLook( wlHostname );
wlHostname.setText( BaseMessages.getString( PKG, "SlaveServerDialog.HostIP.Label" ) );
FormData fdlHostname = new FormData();
fdlHostname.top = new FormAttachment( wName, margin * 2 );
fdlHostname.left = new FormAttachment( 0, 0 ); // First one in the left top corner
fdlHostname.right = new FormAttachment( middle, -margin );
wlHostname.setLayoutData( fdlHostname );
wHostname = new TextVar( slaveServer, wServiceComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER );
props.setLook( wHostname );
wHostname.addModifyListener( lsMod );
FormData fdHostname = new FormData();
fdHostname.top = new FormAttachment( wName, margin * 2 );
fdHostname.left = new FormAttachment( middle, 0 ); // To the right of the label
fdHostname.right = new FormAttachment( 95, 0 );
wHostname.setLayoutData( fdHostname );
// What's the service URL?
Label wlPort = new Label( wServiceComp, SWT.RIGHT );
props.setLook( wlPort );
wlPort.setText( BaseMessages.getString( PKG, "SlaveServerDialog.Port.Label" ) );
FormData fdlPort = new FormData();
fdlPort.top = new FormAttachment( wHostname, margin );
fdlPort.left = new FormAttachment( 0, 0 ); // First one in the left top corner
fdlPort.right = new FormAttachment( middle, -margin );
wlPort.setLayoutData( fdlPort );
wPort = new TextVar( slaveServer, wServiceComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER );
props.setLook( wPort );
wPort.addModifyListener( lsMod );
FormData fdPort = new FormData();
fdPort.top = new FormAttachment( wHostname, margin );
fdPort.left = new FormAttachment( middle, 0 ); // To the right of the label
fdPort.right = new FormAttachment( 95, 0 );
wPort.setLayoutData( fdPort );
// webapp name (optional)
Label wlWebAppName = new Label( wServiceComp, SWT.RIGHT );
wlWebAppName.setText( BaseMessages.getString( PKG, "SlaveServerDialog.WebAppName.Label" ) );
props.setLook( wlWebAppName );
FormData fdlWebAppName = new FormData();
fdlWebAppName.top = new FormAttachment( wPort, margin );
fdlWebAppName.left = new FormAttachment( 0, 0 );
fdlWebAppName.right = new FormAttachment( middle, -margin );
wlWebAppName.setLayoutData( fdlWebAppName );
wWebAppName = new TextVar( slaveServer, wServiceComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER );
props.setLook( wWebAppName );
wWebAppName.addModifyListener( lsMod );
FormData fdWebAppName = new FormData();
fdWebAppName.top = new FormAttachment( wPort, margin );
fdWebAppName.left = new FormAttachment( middle, 0 );
fdWebAppName.right = new FormAttachment( 95, 0 );
wWebAppName.setLayoutData( fdWebAppName );
// Username
Label wlUsername = new Label( wServiceComp, SWT.RIGHT );
wlUsername.setText( BaseMessages.getString( PKG, "SlaveServerDialog.UserName.Label" ) );
props.setLook( wlUsername );
FormData fdlUsername = new FormData();
fdlUsername.top = new FormAttachment( wWebAppName, margin );
fdlUsername.left = new FormAttachment( 0, 0 );
fdlUsername.right = new FormAttachment( middle, -margin );
wlUsername.setLayoutData( fdlUsername );
wUsername = new TextVar( slaveServer, wServiceComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER );
props.setLook( wUsername );
wUsername.addModifyListener( lsMod );
FormData fdUsername = new FormData();
fdUsername.top = new FormAttachment( wWebAppName, margin );
fdUsername.left = new FormAttachment( middle, 0 );
fdUsername.right = new FormAttachment( 95, 0 );
wUsername.setLayoutData( fdUsername );
// Password
Label wlPassword = new Label( wServiceComp, SWT.RIGHT );
wlPassword.setText( BaseMessages.getString( PKG, "SlaveServerDialog.Password.Label" ) );
props.setLook( wlPassword );
FormData fdlPassword = new FormData();
fdlPassword.top = new FormAttachment( wUsername, margin );
fdlPassword.left = new FormAttachment( 0, 0 );
fdlPassword.right = new FormAttachment( middle, -margin );
wlPassword.setLayoutData( fdlPassword );
wPassword = new PasswordTextVar( slaveServer, wServiceComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER );
props.setLook( wPassword );
wPassword.addModifyListener( lsMod );
FormData fdPassword = new FormData();
fdPassword.top = new FormAttachment( wUsername, margin );
fdPassword.left = new FormAttachment( middle, 0 );
fdPassword.right = new FormAttachment( 95, 0 );
wPassword.setLayoutData( fdPassword );
// Master
Label wlMaster = new Label( wServiceComp, SWT.RIGHT );
wlMaster.setText( BaseMessages.getString( PKG, "SlaveServerDialog.IsTheMaster.Label" ) );
props.setLook( wlMaster );
FormData fdlMaster = new FormData();
fdlMaster.top = new FormAttachment( wPassword, margin );
fdlMaster.left = new FormAttachment( 0, 0 );
fdlMaster.right = new FormAttachment( middle, -margin );
wlMaster.setLayoutData( fdlMaster );
wMaster = new Button( wServiceComp, SWT.CHECK );
props.setLook( wMaster );
FormData fdMaster = new FormData();
fdMaster.top = new FormAttachment( wPassword, margin );
fdMaster.left = new FormAttachment( middle, 0 );
fdMaster.right = new FormAttachment( 95, 0 );
wMaster.setLayoutData( fdMaster );
// Https
Control lastControl = wMaster;
Label wlSSL = new Label( wServiceComp, SWT.RIGHT );
wlSSL.setText( BaseMessages.getString( PKG, "SlaveServerDialog.UseSsl.Label" ) );
props.setLook( wlSSL );
FormData fd = new FormData();
fd.top = new FormAttachment( lastControl, margin );
fd.left = new FormAttachment( 0, 0 );
fd.right = new FormAttachment( middle, -margin );
wlSSL.setLayoutData( fd );
wlSSL.setVisible( true );
wSSL = new Button( wServiceComp, SWT.CHECK );
props.setLook( wSSL );
FormData bfd = new FormData();
bfd.top = new FormAttachment( lastControl, margin );
bfd.left = new FormAttachment( middle, 0 );
bfd.right = new FormAttachment( 95, 0 );
wSSL.setLayoutData( bfd );
wSSL.setVisible( true );
fdServiceComp = new FormData();
fdServiceComp.left = new FormAttachment( 0, 0 );
fdServiceComp.top = new FormAttachment( 0, 0 );
fdServiceComp.right = new FormAttachment( 100, 0 );
fdServiceComp.bottom = new FormAttachment( 100, 0 );
wServiceComp.setLayoutData( fdServiceComp );
wServiceComp.layout();
wServiceTab.setControl( wServiceComp );
// ///////////////////////////////////////////////////////////
// / END OF GEN TAB
// ///////////////////////////////////////////////////////////
}
private void addProxyTab() {
// ////////////////////////
// START OF POOL TAB///
// /
wProxyTab = new CTabItem( wTabFolder, SWT.NONE );
wProxyTab.setText( BaseMessages.getString( PKG, "SlaveServerDialog.USER_TAB_PROXY" ) );
FormLayout poolLayout = new FormLayout();
poolLayout.marginWidth = Const.FORM_MARGIN;
poolLayout.marginHeight = Const.FORM_MARGIN;
wProxyComp = new Composite( wTabFolder, SWT.NONE );
props.setLook( wProxyComp );
wProxyComp.setLayout( poolLayout );
// What's the data tablespace name?
Label wlProxyHost = new Label( wProxyComp, SWT.RIGHT );
props.setLook( wlProxyHost );
wlProxyHost.setText( BaseMessages.getString( PKG, "SlaveServerDialog.ProxyServerName.Label" ) );
FormData fdlProxyHost = new FormData();
fdlProxyHost.top = new FormAttachment( 0, 0 );
fdlProxyHost.left = new FormAttachment( 0, 0 ); // First one in the left top corner
fdlProxyHost.right = new FormAttachment( middle, -margin );
wlProxyHost.setLayoutData( fdlProxyHost );
wProxyHost = new TextVar( slaveServer, wProxyComp, SWT.BORDER | SWT.LEFT | SWT.SINGLE );
props.setLook( wProxyHost );
wProxyHost.addModifyListener( lsMod );
FormData fdProxyHost = new FormData();
fdProxyHost.top = new FormAttachment( 0, 0 );
fdProxyHost.left = new FormAttachment( middle, 0 ); // To the right of the label
fdProxyHost.right = new FormAttachment( 95, 0 );
wProxyHost.setLayoutData( fdProxyHost );
// What's the initial pool size
Label wlProxyPort = new Label( wProxyComp, SWT.RIGHT );
props.setLook( wlProxyPort );
wlProxyPort.setText( BaseMessages.getString( PKG, "SlaveServerDialog.ProxyServerPort.Label" ) );
FormData fdlProxyPort = new FormData();
fdlProxyPort.top = new FormAttachment( wProxyHost, margin );
fdlProxyPort.left = new FormAttachment( 0, 0 ); // First one in the left top corner
fdlProxyPort.right = new FormAttachment( middle, -margin );
wlProxyPort.setLayoutData( fdlProxyPort );
wProxyPort = new TextVar( slaveServer, wProxyComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER );
props.setLook( wProxyPort );
wProxyPort.addModifyListener( lsMod );
FormData fdProxyPort = new FormData();
fdProxyPort.top = new FormAttachment( wProxyHost, margin );
fdProxyPort.left = new FormAttachment( middle, 0 ); // To the right of the label
fdProxyPort.right = new FormAttachment( 95, 0 );
wProxyPort.setLayoutData( fdProxyPort );
// What's the maximum pool size
Label wlNonProxyHosts = new Label( wProxyComp, SWT.RIGHT );
props.setLook( wlNonProxyHosts );
wlNonProxyHosts.setText( BaseMessages.getString( PKG, "SlaveServerDialog.IgnoreProxyForHosts.Label" ) );
FormData fdlNonProxyHosts = new FormData();
fdlNonProxyHosts.top = new FormAttachment( wProxyPort, margin );
fdlNonProxyHosts.left = new FormAttachment( 0, 0 ); // First one in the left top corner
fdlNonProxyHosts.right = new FormAttachment( middle, -margin );
wlNonProxyHosts.setLayoutData( fdlNonProxyHosts );
wNonProxyHosts = new TextVar( slaveServer, wProxyComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER );
props.setLook( wNonProxyHosts );
wNonProxyHosts.addModifyListener( lsMod );
FormData fdNonProxyHosts = new FormData();
fdNonProxyHosts.top = new FormAttachment( wProxyPort, margin );
fdNonProxyHosts.left = new FormAttachment( middle, 0 ); // To the right of the label
fdNonProxyHosts.right = new FormAttachment( 95, 0 );
wNonProxyHosts.setLayoutData( fdNonProxyHosts );
fdProxyComp = new FormData();
fdProxyComp.left = new FormAttachment( 0, 0 );
fdProxyComp.top = new FormAttachment( 0, 0 );
fdProxyComp.right = new FormAttachment( 100, 0 );
fdProxyComp.bottom = new FormAttachment( 100, 0 );
wProxyComp.setLayoutData( fdProxyComp );
wProxyComp.layout();
wProxyTab.setControl( wProxyComp );
}
public void dispose() {
props.setScreen( new WindowProperty( shell ) );
shell.dispose();
}
public void getData() {
wName.setText( Const.NVL( slaveServer.getName(), "" ) );
wHostname.setText( Const.NVL( slaveServer.getHostname(), "" ) );
wPort.setText( Const.NVL( slaveServer.getPort(), "" ) );
wWebAppName.setText( Const.NVL( slaveServer.getWebAppName(), "" ) );
wUsername.setText( Const.NVL( slaveServer.getUsername(), "" ) );
wPassword.setText( Const.NVL( slaveServer.getPassword(), "" ) );
wProxyHost.setText( Const.NVL( slaveServer.getProxyHostname(), "" ) );
wProxyPort.setText( Const.NVL( slaveServer.getProxyPort(), "" ) );
wNonProxyHosts.setText( Const.NVL( slaveServer.getNonProxyHosts(), "" ) );
wMaster.setSelection( slaveServer.isMaster() );
wSSL.setSelection( slaveServer.isSslMode() );
wName.setFocus();
}
private void cancel() {
originalServer = null;
dispose();
}
public void ok() {
getInfo();
if ( !slaveServer.getName().equals( originalServer.getName() ) ) {
if ( DialogUtils.objectWithTheSameNameExists( slaveServer, existingServers ) ) {
String title = BaseMessages.getString( PKG, "SlaveServerDialog.SlaveServerNameExists.Title" );
String message =
BaseMessages.getString( PKG, "SlaveServerDialog.SlaveServerNameExists", slaveServer.getName() );
String okButton = BaseMessages.getString( PKG, "System.Button.OK" );
MessageDialog dialog =
new MessageDialog( shell, title, null, message, MessageDialog.ERROR, new String[] { okButton }, 0 );
dialog.open();
return;
}
}
originalServer.setName( slaveServer.getName() );
originalServer.setHostname( slaveServer.getHostname() );
originalServer.setPort( slaveServer.getPort() );
originalServer.setWebAppName( slaveServer.getWebAppName() );
originalServer.setUsername( slaveServer.getUsername() );
originalServer.setPassword( slaveServer.getPassword() );
originalServer.setProxyHostname( slaveServer.getProxyHostname() );
originalServer.setProxyPort( slaveServer.getProxyPort() );
originalServer.setNonProxyHosts( slaveServer.getNonProxyHosts() );
originalServer.setMaster( slaveServer.isMaster() );
originalServer.setSslMode( slaveServer.isSslMode() );
originalServer.setChanged();
ok = true;
dispose();
}
// Get dialog info in securityService
private void getInfo() {
slaveServer.setName( wName.getText() );
slaveServer.setHostname( wHostname.getText() );
slaveServer.setPort( wPort.getText() );
slaveServer.setWebAppName( wWebAppName.getText() );
slaveServer.setUsername( wUsername.getText() );
slaveServer.setPassword( wPassword.getText() );
slaveServer.setProxyHostname( wProxyHost.getText() );
slaveServer.setProxyPort( wProxyPort.getText() );
slaveServer.setNonProxyHosts( wNonProxyHosts.getText() );
slaveServer.setMaster( wMaster.getSelection() );
slaveServer.setSslMode( wSSL.getSelection() );
}
public void test() {
try {
getInfo();
String xml = "<sample/>";
String reply = slaveServer.sendXML( xml, RegisterTransServlet.CONTEXT_PATH );
String message =
BaseMessages.getString( PKG, "SlaveServer.Replay.Info1" )
+ slaveServer.constructUrl( RegisterTransServlet.CONTEXT_PATH ) + Const.CR
+ BaseMessages.getString( PKG, "SlaveServer.Replay.Info2" ) + Const.CR + Const.CR;
message += xml;
message += Const.CR + Const.CR;
message += "Reply was:" + Const.CR + Const.CR;
message += reply + Const.CR;
EnterTextDialog dialog =
new EnterTextDialog(
shell, "XML", BaseMessages.getString( PKG, "SlaveServer.RetournedXMLInfo" ), message );
dialog.open();
} catch ( Exception e ) {
new ErrorDialog( shell, BaseMessages.getString( PKG, "SlaveServer.ExceptionError" ), BaseMessages.getString(
PKG, "SlaveServer.ExceptionUnableGetReplay.Error1" )
+ slaveServer.getHostname()
+ BaseMessages.getString( PKG, "SlaveServer.ExceptionUnableGetReplay.Error2" ), e );
}
}
}

View File

@ -0,0 +1,50 @@
############## SlaveServerDialog ####################
SlaveServerDialog.Shell.Title=Slave Server dialog
SlaveServerDialog.ServerName.Label=Server name
SlaveServerDialog.HostIP.Label=Hostname or IP address
SlaveServerDialog.Port.Label=Port (empty is port 80)
SlaveServerDialog.WebAppName.Label=Web App Name (required for Pentaho Server)
SlaveServerDialog.UserName.Label=Username
SlaveServerDialog.Password.Label=Password
SlaveServerDialog.IsTheMaster.Label=Is the master
SlaveServerDialog.UseSsl.Label=Use https protocol
SlaveServerDialog.ProxyServerName.Label=Proxy server hostname:
SlaveServerDialog.ProxyServerPort.Label=The proxy server port:
SlaveServerDialog.IgnoreProxyForHosts.Label=Ignore proxy for hosts: regexp | separated:
SlaveServerDialog.USER_TAB_SERVICE=Service
SlaveServerDialog.USER_TAB_PROXY=Proxy
SlaveServerDialog.SlaveServerNameExists.Title=Slave Server Exists
SlaveServerDialog.SlaveServerNameExists=Slave Server {0} already exists.
############## SlaveServer ####################
SlaveServer.Replay.Info1=Testing reply from server URL:
SlaveServer.Replay.Info2=Using content:
SlaveServer.RetournedXMLInfo=The XML returned is:
SlaveServer.ExceptionError=Error
SlaveServer.ExceptionUnableGetReplay.Error1=Unable to get a reply back from URL [
SlaveServer.ExceptionUnableGetReplay.Error2=]
############## ClusterSchemaDialog ####################
ClusterSchemaDialog.Shell.Title=Clustering schema dialog
ClusterSchemaDialog.Schema.Label=Schema name
ClusterSchemaDialog.Port.Label=Port
ClusterSchemaDialog.SocketBufferSize.Label=Sockets buffer size
ClusterSchemaDialog.SocketFlushRows.Label=Sockets flush interval (rows)
ClusterSchemaDialog.SocketDataCompressed.Label=Sockets data compressed?
ClusterSchemaDialog.SlaveServers.Label=Slave servers
ClusterSchemaDialog.SelectSlaveServers.Label=Select slave servers
ClusterSchemaDialog.ColumnInfoName.Label=Name
ClusterSchemaDialog.ColumnInfoServiceURL.Label=Service URL
ClusterSchemaDialog.ColumnInfoMaster.Label=Master?
ClusterSchemaDialog.SelectServers.Label=Select the servers
ClusterSchemaDialog.SelectServersCluster.Label=Select the servers for this cluster
ClusterSchemaDialog.DynamicCluster.Label = Dynamic cluster
ClusterSchemaDialog.DynamicCluster.Tooltip = A dynamic cluster gets the list of slave servers from the first master slave server it can contact.\n A master is informed by the slave of its existence at startup.\nA master monitors the availability of the slaves.
ClusterSchemaDialog.ClusterSchemaNameExists.Title=Cluster Schema Exists
ClusterSchemaDialog.ClusterSchemaNameExists=Cluster Schema {0} already exists.

View File

@ -0,0 +1,35 @@
#File generated by Hitachi Vantara Transator for package 'org.pentaho.di.ui.cluster.dialog' in locale 'es_AR'
#Fri Dec 07 15:30:59 GMT-03:00 2007
SlaveServerDialog.ProxyServerPort.Label=Puerto del servidor proxy\:
ClusterSchemaDialog.SocketFlushRows.Label=Intervalo para vaciado de sockets (filas)
SlaveServer.ExceptionError=Error
ClusterSchemaDialog.Schema.Label=Nombre de Esquema
ClusterSchemaDialog.Shell.Title=Di\u00e1logo de esquema de cluster
SlaveServerDialog.IsTheMaster.Label=Es el maestro
ClusterSchemaDialog.ColumnInfoServiceURL.Label=URL del servicio
ClusterSchemaDialog.SocketBufferSize.Label=Tama\u00f1o del buffer de socket
ClusterSchemaDialog.SelectSlaveServers.Label=Selecciones los servidores esclavos
SlaveServerDialog.Port.Label=Puerto (vac\u00edo\=puerto 80)
SlaveServer.ExceptionUnableGetReplay.Error2=]
SlaveServerDialog.ProxyServerName.Label=Nombre de host del servidor proxy\:
SlaveServer.ExceptionUnableGetReplay.Error1=No se puede obtener una respuesta de la URL [
ClusterSchemaDialog.SelectServersCluster.Label=Seleccione los servidores para este cluster
SlaveServerDialog.HostIP.Label=Nombre de Host \u00f3 direcci\u00f3n IP
SlaveServer.Replay.Info1=Probando respuesta de la URL de servidor\:
ClusterSchemaDialog.ColumnInfoMaster.Label=\u00bfMaestro?
SlaveServer.Replay.Info2=Utilizando contenido\:
SlaveServerDialog.USER_TAB_PROXY=Proxy
SlaveServerDialog.Password.Label=Contrase\u00f1a
SlaveServerDialog.IgnoreProxyForHosts.Label=Ignorar el proxy para hosts\: expresi\u00f3n regular separada por |\:
ClusterSchemaDialog.ColumnInfoName.Label=Nombre
SlaveServerDialog.Shell.Title=Di\u00e1logo del servidor esclavo
ClusterSchemaDialog.SlaveServers.Label=Servidores esclavos
SlaveServerDialog.UserName.Label=Nombre de usuario
ClusterSchemaDialog.Port.Label=Puerto
SlaveServerDialog.USER_TAB_SERVICE=Servicio
ClusterSchemaDialog.SocketDataCompressed.Label=\u00bfDatos de socket comprimidos?
SlaveServerDialog.ServerName.Label=Nombre del servidor
ClusterSchemaDialog.SelectServers.Label=Seleccione los servidores
SlaveServer.RetournedXMLInfo=El XML devuelto es\:

View File

@ -0,0 +1,38 @@
#File generated by Hitachi Vantara Translator for package 'org.pentaho.di.ui.cluster.dialog' in locale 'fr_FR'
#
#
#Thu Feb 18 20:25:42 CET 2010
ClusterSchemaDialog.SelectServersCluster.Label=S\u00E9lectionner les serveurs pour le sch\u00E9ma grappe
ClusterSchemaDialog.Shell.Title=Sch\u00E9ma grappe
ClusterSchemaDialog.SelectSlaveServers.Label=S\u00E9lectionner serveurs
SlaveServerDialog.WebAppName.Label=Nom de l'application web (facultatif)
ClusterSchemaDialog.ColumnInfoServiceURL.Label=URL service
ClusterSchemaDialog.SocketBufferSize.Label=Taille tampon
SlaveServerDialog.IsTheMaster.Label=Serveur Ma\u00EEtre?
SlaveServerDialog.Port.Label=Port (vide \= 80)
ClusterSchemaDialog.DynamicCluster.Label=Sch\u00E9ma grappe dynamique
SlaveServer.ExceptionUnableGetReplay.Error2=]
ClusterSchemaDialog.Schema.Label=Nom sch\u00E9ma
SlaveServer.ExceptionUnableGetReplay.Error1=Impossible de r\u00E9cup\u00E9rer une r\u00E9ponse depuis l''URL [
SlaveServerDialog.ProxyServerName.Label=Nom H\u00F4te Proxy\:
SlaveServerDialog.ProxyServerPort.Label=Port Proxy\:
ClusterSchemaDialog.SocketFlushRows.Label=Interval lib\u00E9ration (lignes)
SlaveServer.ExceptionError=Erreur
ClusterSchemaDialog.SelectServers.Label=S\u00E9lectionner serveurs
SlaveServerDialog.HostIP.Label=Nom /IP H\u00F4te
ClusterSchemaDialog.SocketDataCompressed.Label=Donn\u00E9es Compress\u00E9es?
ClusterSchemaDialog.Port.Label=Port
SlaveServerDialog.Password.Label=Mot de passe
ClusterSchemaDialog.ColumnInfoName.Label=Nom
ClusterSchemaDialog.SlaveServers.Label=Serveurs
SlaveServerDialog.Shell.Title=Informations Serveur esclave
SlaveServerDialog.UserName.Label=Utilisateur
SlaveServerDialog.IgnoreProxyForHosts.Label=Ignorer proxy pour h\u00F4tes (separ\u00E9s par |)\:
SlaveServerDialog.USER_TAB_PROXY=Proxy
SlaveServer.Replay.Info2=contenu\:
ClusterSchemaDialog.ColumnInfoMaster.Label=Serveur ma\u00EEtre?
SlaveServer.Replay.Info1=R\u00E9ponse du serveur (URL)\:
SlaveServerDialog.USER_TAB_SERVICE=Service
ClusterSchemaDialog.DynamicCluster.Tooltip=Un sch\u00E9ma grappe dynamique r\u00E9cup\u00E8re la liste des serveurs esclaves depuis le premier serveur ma\u00EEtre contact\u00E9.\r\nChaque serveur esclave informe son serveur ma\u00EEtre de son existance au d\u00E9marrage.\r\nLe serveur ma\u00EEtre surveille ainsi la disponibilit\u00E9 de chacun de ses serveurs esclaves.
SlaveServerDialog.ServerName.Label=Nom serveur
SlaveServer.RetournedXMLInfo=Le flux The XML retourn\u00E9 est\:

View File

@ -0,0 +1,38 @@
#File generated by Hitachi Vantara Translator for package 'org.pentaho.di.ui.cluster.dialog' in locale 'it_IT'
#
#
#Sun Feb 14 22:12:44 CET 2010
ClusterSchemaDialog.SelectServersCluster.Label=Seleziona i server per questo cluster
ClusterSchemaDialog.Shell.Title=Finestra dello schema di clustering
ClusterSchemaDialog.SelectSlaveServers.Label=Seleziona i server slave
SlaveServerDialog.WebAppName.Label=Nome applicazione web (opzionale)
ClusterSchemaDialog.ColumnInfoServiceURL.Label=Servizio URL
ClusterSchemaDialog.SocketBufferSize.Label=Dimensione del buffer dei socket
SlaveServerDialog.IsTheMaster.Label=E'' il master
SlaveServerDialog.Port.Label=Porta (vuoto \u00E8 la porta 80)
ClusterSchemaDialog.DynamicCluster.Label=Cluster dinamico
SlaveServer.ExceptionUnableGetReplay.Error2=]
ClusterSchemaDialog.Schema.Label=Nome dello schema
SlaveServer.ExceptionUnableGetReplay.Error1=Impossibile ricevere una risposta dall''URL [
SlaveServerDialog.ProxyServerName.Label=Nome host del server proxy\:
SlaveServerDialog.ProxyServerPort.Label=Porta del server proxy\:
ClusterSchemaDialog.SocketFlushRows.Label=Intervallo di pulizia dei socket (righe)
SlaveServer.ExceptionError=Errore
ClusterSchemaDialog.SelectServers.Label=Seleziona i server
SlaveServerDialog.HostIP.Label=Nome host o indirizzo IP
ClusterSchemaDialog.SocketDataCompressed.Label=Dati dei socket compressi?
ClusterSchemaDialog.Port.Label=Porta
SlaveServerDialog.Password.Label=Password
ClusterSchemaDialog.SlaveServers.Label=Server slave
ClusterSchemaDialog.ColumnInfoName.Label=Nome
SlaveServerDialog.Shell.Title=Finestra del server slave
SlaveServerDialog.UserName.Label=Utente
SlaveServerDialog.IgnoreProxyForHosts.Label=Ignora il proxy per gli host\: regexp | separata\:
SlaveServerDialog.USER_TAB_PROXY=Proxy
SlaveServer.Replay.Info2=Utilizzo contenuto\:
SlaveServerDialog.USER_TAB_SERVICE=Servizio
ClusterSchemaDialog.ColumnInfoMaster.Label=Master?
SlaveServer.Replay.Info1=Prova di risposta dall''URL del server\:
ClusterSchemaDialog.DynamicCluster.Tooltip=Un cluster dinamico riceve la lista dei server slave dal primo server\nmaster slave che pu\u00F2 essere contattato.\nUn master \u00E8 informato alla partenza dallo slave della sua esistenza.\nUn master monitora la disponibilit\u00E0 degli slave.
SlaveServerDialog.ServerName.Label=Nome del server
SlaveServer.RetournedXMLInfo=L''XML ritornato \u00E8\:

View File

@ -0,0 +1,43 @@
############## SlaveServerDialog ####################
SlaveServerDialog.Shell.Title=\u30B9\u30EC\u30FC\u30D6\u30B5\u30FC\u30D0\u30FC
SlaveServerDialog.ServerName.Label=\u30B5\u30FC\u30D0\u30FC\u540D
SlaveServerDialog.HostIP.Label=\u30DB\u30B9\u30C8\u540D\u307E\u305F\u306FIP\u30A2\u30C9\u30EC\u30B9
SlaveServerDialog.Port.Label=\u30DD\u30FC\u30C8\u756A\u53F7 (\u7A7A\u767D\u306F 80)
SlaveServerDialog.WebAppName.Label=\u30A6\u30A7\u30D6\u30A2\u30D7\u30EA\u540D (\u30AA\u30D7\u30B7\u30E7\u30F3)
SlaveServerDialog.UserName.Label=\u30E6\u30FC\u30B6\u30FC\u540D
SlaveServerDialog.Password.Label=\u30D1\u30B9\u30EF\u30FC\u30C9
SlaveServerDialog.IsTheMaster.Label=\u30DE\u30B9\u30BF\u30FC\u30B5\u30FC\u30D0\u30FC\u306B\u3059\u308B
SlaveServerDialog.ProxyServerName.Label=\u30DB\u30B9\u30C8\u540D:
SlaveServerDialog.ProxyServerPort.Label=\u30DD\u30FC\u30C8\u756A\u53F7:
SlaveServerDialog.IgnoreProxyForHosts.Label=\u30D7\u30ED\u30AD\u30B7\u3092\u7121\u8996: \u6B63\u898F\u8868\u73FE\u3001'|'\u3067\u5206\u5272:
SlaveServerDialog.USER_TAB_SERVICE=\u30B5\u30FC\u30D3\u30B9
SlaveServerDialog.USER_TAB_PROXY=\u30D7\u30ED\u30AD\u30B7
############## SlaveServer ####################
SlaveServer.Replay.Info1=\u30B5\u30FC\u30D0\u30FCURL\u304B\u3089\u5FDC\u7B54\u3092\u30C6\u30B9\u30C8:
SlaveServer.Replay.Info2=\u4F7F\u7528\u30B3\u30F3\u30C6\u30F3\u30C4:
SlaveServer.RetournedXMLInfo=XML\u7D50\u679C:
SlaveServer.ExceptionError=\u30A8\u30E9\u30FC
SlaveServer.ExceptionUnableGetReplay.Error1=URL\u304B\u3089\u5FDC\u7B54\u3092\u5F97\u3089\u308C\u306A\u3044 [
SlaveServer.ExceptionUnableGetReplay.Error2=]
############## ClusterSchemaDialog ####################
ClusterSchemaDialog.Shell.Title=\u30AF\u30E9\u30B9\u30BF\u30EA\u30F3\u30B0\u30B9\u30AD\u30FC\u30DE
ClusterSchemaDialog.Schema.Label=\u30B9\u30AD\u30FC\u30DE\u540D
ClusterSchemaDialog.Port.Label=\u30DD\u30FC\u30C8\u756A\u53F7
ClusterSchemaDialog.SocketBufferSize.Label=\u30BD\u30B1\u30C3\u30C8\u30D0\u30C3\u30D5\u30A1\u30B5\u30A4\u30BA
ClusterSchemaDialog.SocketFlushRows.Label=\u30BD\u30B1\u30C3\u30C8\u30D5\u30E9\u30C3\u30B7\u30E5\u9593\u9694 (\u30EC\u30B3\u30FC\u30C9)
ClusterSchemaDialog.SocketDataCompressed.Label=\u30BD\u30B1\u30C3\u30C8\u30C7\u30FC\u30BF\u3092\u5727\u7E2E\u3059\u308B
ClusterSchemaDialog.SlaveServers.Label=\u30B9\u30EC\u30FC\u30D6\u30B5\u30FC\u30D0\u30FC
ClusterSchemaDialog.SelectSlaveServers.Label=\u30B9\u30EC\u30FC\u30D6\u30B5\u30FC\u30D0\u30FC\u9078\u629E
ClusterSchemaDialog.ColumnInfoName.Label=\u540D\u79F0
ClusterSchemaDialog.ColumnInfoServiceURL.Label=\u30B5\u30FC\u30D3\u30B9URL
ClusterSchemaDialog.ColumnInfoMaster.Label=\u30DE\u30B9\u30BF\u30FC
ClusterSchemaDialog.SelectServers.Label=\u30B5\u30FC\u30D0\u30FC\u9078\u629E
ClusterSchemaDialog.SelectServersCluster.Label=\u3053\u306E\u30AF\u30E9\u30B9\u30BF\u306E\u30B5\u30FC\u30D0\u30FC\u3092\u9078\u629E
ClusterSchemaDialog.DynamicCluster.Label = \u52D5\u7684\u30AF\u30E9\u30B9\u30BF
ClusterSchemaDialog.DynamicCluster.Tooltip = \u52D5\u7684\u30AF\u30E9\u30B9\u30BF\u306F\u30B3\u30F3\u30BF\u30AF\u30C8\u53EF\u80FD\u306A\u6700\u521D\u306E\u30DE\u30B9\u30BF\u30FC\u30B9\u30EC\u30FC\u30D6\u30B5\u30FC\u30D0\u30FC\u304B\u3089\u30B9\u30EC\u30FC\u30D6\u30B5\u30FC\u30D0\u30FC\u306E\u30EA\u30B9\u30C8\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002\n\u30DE\u30B9\u30BF\u30FC\u306F\u8D77\u52D5\u6642\u306B\u305D\u306E\u5B58\u5728\u3092\u30B9\u30EC\u30FC\u30D6\u306B\u3088\u3063\u3066\u77E5\u3089\u3055\u308C\u307E\u3059\u3002\n\u30DE\u30B9\u30BF\u30FC\u306F\u30B9\u30EC\u30FC\u30D6\u306E\u53EF\u7528\u6027\u3092\u30E2\u30CB\u30BF\u30FC\u3057\u307E\u3059\u3002

View File

@ -0,0 +1,40 @@
#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
#File generated by Hitachi Vantara Translator for package 'org.pentaho.di.ui.cluster.dialog' in locale 'ko_KR'
#
#
#Fri Feb 26 15:04:54 KST 2010
ClusterSchemaDialog.ColumnInfoMaster.Label = \uB9C8\uC2A4\uD130?
ClusterSchemaDialog.ColumnInfoName.Label = \uC774\uB984
ClusterSchemaDialog.ColumnInfoServiceURL.Label = \uC11C\uBE44\uC2A4 URL
ClusterSchemaDialog.DynamicCluster.Label = \uB3D9\uC801 \uD074\uB7EC\uC2A4\uD130
ClusterSchemaDialog.DynamicCluster.Tooltip = \uB2E4\uC774\uB098\uBBF9 \uD074\uB7EC\uC2A4\uD130\uB294 \uC5F0\uACB0\uAC00\uB2A5\uD55C \uCCAB\uBC88\uC9F8 \uB9C8\uC2A4\uD130 \uC2AC\uB808\uC774\uBE0C \uC11C\uBC84\uC5D0\uC11C \uC2AC\uB808\uC774\uBE0C \uC11C\uBC84 \uB9AC\uC2A4\uD2B8\uB97C \uAC00\uC838\uC635\uB2C8\uB2E4.\r\nA master is informed by the slave of its existence at startup.\r\nA master monitors the availability of the slaves.
ClusterSchemaDialog.Port.Label = \uD3EC\uD2B8
ClusterSchemaDialog.Schema.Label = \uC2A4\uD0A4\uB9C8 \uC774\uB984
ClusterSchemaDialog.SelectServers.Label = \uC11C\uBC84 \uC120\uD0DD
ClusterSchemaDialog.SelectServersCluster.Label = \uD074\uB7EC\uC2A4\uD130\uC758 \uC11C\uBC84 \uC120\uD0DD
ClusterSchemaDialog.SelectSlaveServers.Label = \uC2AC\uB808\uC774\uBE0C \uC11C\uBC84 \uC120\uD0DD
ClusterSchemaDialog.Shell.Title = \uD074\uB7EC\uC2A4\uD130\uB9C1 \uC2A4\uD0A4\uB9C8
ClusterSchemaDialog.SlaveServers.Label = \uC2AC\uB808\uC774\uBE0C \uC11C\uBC84
ClusterSchemaDialog.SocketBufferSize.Label = \uC18C\uCF13 \uBC84\uD37C \uC0AC\uC774\uC988
ClusterSchemaDialog.SocketDataCompressed.Label = \uC18C\uCF13 \uB370\uC774\uD130 \uC555\uCD95?
ClusterSchemaDialog.SocketFlushRows.Label = \uC18C\uCF13 \uD50C\uB7EC\uC2DC \uC8FC\uAE30 (\uB85C\uC6B0)
SlaveServer.ExceptionError = \uC624\uB958
SlaveServer.ExceptionUnableGetReplay.Error1 = \uD68C\uC2E0\uC744 \uAC00\uC838\uC62C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. URL [
SlaveServer.ExceptionUnableGetReplay.Error2 = ]
SlaveServer.Replay.Info1 = \uC11C\uBC84 URL\uB85C\uBD80\uD130 \uD68C\uC2E0 \uD14C\uC2A4\uD2B8:
SlaveServer.RetournedXMLInfo = \uD68C\uC2E0 XML:
SlaveServerDialog.HostIP.Label = \uD638\uC2A4\uD2B8\uBA85 \uB610\uB294 IP \uC8FC\uC18C
SlaveServerDialog.IsTheMaster.Label = \uB9C8\uC2A4\uD130 \uC11C\uBC84?
SlaveServerDialog.Password.Label = \uC554\uD638
SlaveServerDialog.Port.Label = \uD3EC\uD2B8 (\uAE30\uBCF8 \uD3EC\uD2B8\uB294 80)
SlaveServerDialog.ProxyServerName.Label = \uD504\uB85D\uC2DC \uC11C\uBC84 \uD638\uC2A4\uD2B8\uBA85
SlaveServerDialog.ProxyServerPort.Label = \uD504\uB85D\uC2DC \uC11C\uBC84 \uD3EC\uD2B8
SlaveServerDialog.ServerName.Label = \uC11C\uBC84 \uC774\uB984
SlaveServerDialog.Shell.Title = \uC2AC\uB808\uC774\uBE0C \uC11C\uBC84
SlaveServerDialog.USER_TAB_PROXY = \uD504\uB85D\uC2DC
SlaveServerDialog.USER_TAB_SERVICE = \uC11C\uBE44\uC2A4
SlaveServerDialog.UserName.Label = \uC0AC\uC6A9\uC790 \uC774\uB984
SlaveServerDialog.WebAppName.Label = \uC6F9 \uC560\uD50C\uB9AC\uCF00\uC774\uC158 \uC774\uB984 (\uC120\uD0DD)

View File

@ -0,0 +1,35 @@
#File generated by Hitachi Vantara Translator for package 'org.pentaho.di.ui.cluster.dialog' in locale 'zh_CN'
#Wed Sep 24 16:03:25 CST 2008
ClusterSchemaDialog.SelectServersCluster.Label=\u4E3A\u8FD9\u4E2A\u96C6\u7FA4\u8BBE\u7F6E\u670D\u52A1\u5668
ClusterSchemaDialog.Shell.Title=\u96C6\u7FA4schema\u5BF9\u8BDD\u6846
ClusterSchemaDialog.SelectSlaveServers.Label=\u9009\u62E9\u5B50\u670D\u52A1\u5668
ClusterSchemaDialog.ColumnInfoServiceURL.Label=\u670D\u52A1URL
ClusterSchemaDialog.SocketBufferSize.Label=Sockets\u7F13\u5B58\u5927\u5C0F
SlaveServerDialog.IsTheMaster.Label=\u662F\u4E3B\u670D\u52A1\u5668\u5417\uFF1F
SlaveServerDialog.Port.Label=\u7AEF\u53E3\u53F7 (\u5982\u679C\u4E0D\u5199\u5C31\u662F\u7AEF\u53E380)
SlaveServer.ExceptionUnableGetReplay.Error2=]
ClusterSchemaDialog.Schema.Label=Schema\u540D\u79F0
SlaveServer.ExceptionUnableGetReplay.Error1=Unable to get a reply back from URL [
SlaveServerDialog.ProxyServerName.Label=\u4EE3\u7406\u670D\u52A1\u5668\u4E3B\u673A\u540D\:
SlaveServerDialog.ProxyServerPort.Label=\u4EE3\u7406\u670D\u52A1\u5668\u7AEF\u53E3\:
ClusterSchemaDialog.SocketFlushRows.Label=Sockets\u5237\u65B0\u95F4\u9694 (rows)
SlaveServer.ExceptionError=\u9519\u8BEF
SlaveServerDialog.HostIP.Label=\u4E3B\u673A\u540D\u79F0\u6216IP\u5730\u5740
ClusterSchemaDialog.SelectServers.Label=\u9009\u62E9\u670D\u52A1\u5668
ClusterSchemaDialog.SocketDataCompressed.Label=Sockets\u6570\u636E\u662F\u5426\u538B\u7F29?
ClusterSchemaDialog.Port.Label=\u7AEF\u53E3
SlaveServerDialog.Password.Label=\u5BC6\u7801
ClusterSchemaDialog.ColumnInfoName.Label=\u540D\u79F0
ClusterSchemaDialog.SlaveServers.Label=\u5B50\u670D\u52A1\u5668
SlaveServerDialog.Shell.Title=\u5B50\u670D\u52A1\u5668\u5BF9\u8BDD\u6846
SlaveServerDialog.UserName.Label=\u7528\u6237\u540D
SlaveServerDialog.IgnoreProxyForHosts.Label=Ignore proxy for hosts\: regexp | separated\:
SlaveServerDialog.USER_TAB_PROXY=\u4EE3\u7406
SlaveServer.Replay.Info2=\u4F7F\u7528content(\u4E3B\u4F53)\:
ClusterSchemaDialog.ColumnInfoMaster.Label=\u662F\u4E3B\u670D\u52A1\u5668\u5417\uFF1F?
SlaveServer.Replay.Info1=\u6D4B\u8BD5\u54CD\u5E94\u6765\u81EA\u670D\u52A1\u5668URL\:
SlaveServerDialog.USER_TAB_SERVICE=\u670D\u52A1
SlaveServerDialog.ServerName.Label=\u670D\u52A1\u5668\u540D\u79F0
SlaveServer.RetournedXMLInfo=XML\u8FD4\u56DE\u662F\:

View File

@ -0,0 +1,284 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2018 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.TreeItem;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.util.Utils;
import org.pentaho.ui.xul.containers.XulMenupopup;
/**
* This class is used to define a number of default values for various settings throughout Kettle. It also contains a
* number of static final methods to make your life easier.
*
* @author Matt
* @since 07-05-2003
*
*/
public class ConstUI {
/**
* Default icon size
*/
public static final int ICON_SIZE = 32;
public static final int LARGE_ICON_SIZE = 48;
public static final int SMALL_ICON_SIZE = 16;
public static final int MEDIUM_ICON_SIZE = 24;
public static final int DOCUMENTATION_ICON_SIZE = 14;
/**
* Default checkbox width
*/
public static final int CHECKBOX_WIDTH = 20;
/**
* Default line width for arrows & around icons
*/
public static final int LINE_WIDTH = 1;
/**
* Default grid size to which the graphical views snap.
*/
public static final int GRID_SIZE = 16;
/**
* The minimal size of a note on a graphical view (width & height)
*/
public static final int NOTE_MIN_SIZE = 20;
/**
* Offset between pointer and tooltip position.
*/
public static final int TOOLTIP_OFFSET = 5;
/**
* The default red-component of the background color
*/
public static final int COLOR_BACKGROUND_RED = 255;
/**
* The default green-component of the background color
*/
public static final int COLOR_BACKGROUND_GREEN = 255;
/**
* The default blue-component of the background color
*/
public static final int COLOR_BACKGROUND_BLUE = 255;
/**
* The default red-component of the graph background color
*/
public static final int COLOR_GRAPH_RED = 255;
/**
* The default green-component of the graph background color
*/
public static final int COLOR_GRAPH_GREEN = 255;
/**
* The default blue-component of the graph background color
*/
public static final int COLOR_GRAPH_BLUE = 255;
/**
* The default red-component of the tab selected color
*/
public static final int COLOR_TAB_RED = 240;
/**
* The default green-component of the tab selected color
*/
public static final int COLOR_TAB_GREEN = 240;
/**
* The default blue-component of the tab selected color
*/
public static final int COLOR_TAB_BLUE = 240;
/**
* the default canvas refresh interval for running transformations
*/
public static final int INTERVAL_MS_TRANS_CANVAS_REFRESH = 1000;
/**
* margin between points of controls
*/
public static final int SMALL_MARGIN = 5;
/**
* margin between points of controls
*/
public static final int MEDUIM_MARGIN = 10;
/**
* Determine the level of where the TreeItem is position in a tree.
*
* @param ti
* The TreeItem
* @return The level of the item in the tree
*/
public static final int getTreeLevel( TreeItem ti ) {
int level = 0;
TreeItem parent = ti.getParentItem();
while ( parent != null ) {
level++;
parent = parent.getParentItem();
}
return level;
}
/**
* Get an array of strings containing the path from the given TreeItem to the parent.
*
* @param ti
* The TreeItem to look at
* @return An array of string describing the path to the TreeItem.
*/
public static final String[] getTreeStrings( TreeItem ti ) {
int nrlevels = getTreeLevel( ti ) + 1;
String[] retval = new String[nrlevels];
int level = 0;
retval[nrlevels - 1] = ti.getText();
TreeItem parent = ti.getParentItem();
while ( parent != null ) {
level++;
retval[nrlevels - level - 1] = parent.getText();
parent = parent.getParentItem();
}
return retval;
}
/**
* Return the tree path seperated by Const.FILE_SEPARATOR, starting from a certain depth in the tree.
*
* @param ti
* The TreeItem to get the path for
* @param from
* The depth to start at, use 0 to get the complete tree.
* @return The tree path.
*/
public static final String getTreePath( TreeItem ti, int from ) {
String[] path = getTreeStrings( ti );
if ( path == null ) {
return null;
}
String retval = "";
for ( int i = from; i < path.length; i++ ) {
if ( !path[i].equalsIgnoreCase( Const.FILE_SEPARATOR ) ) {
retval += Const.FILE_SEPARATOR + path[i];
}
}
return retval;
}
/**
* Flips the TreeItem from expanded to not expanded or vice-versa.
*
* @param ti
* The TreeItem to flip.
*/
public static final void flipExpanded( TreeItem ti ) {
ti.setExpanded( !ti.getExpanded() );
}
public static final TreeItem findTreeItem( TreeItem parent, String name ) {
return findTreeItem( parent, null, name );
}
/**
* Finds a TreeItem with a certain label (name) in a (part of a) tree.
*
* @param parent
* The TreeItem where we start looking.
* @param parentName
* The name of the parent to match as well (null=not used)
* @param name
* The name or item label to look for.
* @return The TreeItem if the label was found, null if nothing was found.
*/
public static final TreeItem findTreeItem( TreeItem parent, String parentName, String name ) {
return findTreeItem( null, parent, parentName, name );
}
private static final TreeItem findTreeItem( TreeItem grandParent, TreeItem parent, String parentName, String name ) {
if ( Utils.isEmpty( parentName ) ) {
if ( parent.getText().equalsIgnoreCase( name ) ) {
return parent;
}
} else {
if ( grandParent != null && grandParent.getText().equalsIgnoreCase( "OTHER" ) ) {
System.out.println( "Other" );
}
if ( grandParent != null
&& grandParent.getText().equalsIgnoreCase( parentName ) && parent.getText().equalsIgnoreCase( name ) ) {
return parent;
}
}
TreeItem[] ti = parent.getItems();
for ( int i = 0; i < ti.length; i++ ) {
TreeItem child = findTreeItem( parent, ti[i], parentName, name );
if ( child != null ) {
return child;
}
}
return null;
}
public static void displayMenu( XulMenupopup xulMenuPopup, Control control ) {
MenuManager menuMgr = (MenuManager) xulMenuPopup.getManagedObject();
Menu menu = menuMgr.createContextMenu( control );
menuMgr.updateAll( true );
displayMenu( menu, control );
}
public static void displayMenu( Menu menu, Control control ) {
Menu oldMenu = control.getMenu();
if ( oldMenu != null && oldMenu != menu ) {
oldMenu.setVisible( false );
}
// XXX: Stubbing out this line prevents context dialogs from appearing twice
// on OS X. Tested on Windows to be sure there is no adverse effect.
// Unfortunately, I do *not* understand why this works. I ran it by
// mcasters and he didn't know for sure either.
// control.setMenu(menu);
menu.setVisible( true );
}
}

View File

@ -0,0 +1,124 @@
/*
* Copyright 2017-2018 Hitachi Vantara. All rights reserved.
*
* 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
*/
package org.pentaho.di.ui.core;
import org.pentaho.di.repository.Repository;
import org.pentaho.di.repository.RepositoryObjectInterface;
/**
* Created by bmorrise on 8/17/17.
*/
public class FileDialogOperation {
public static String SELECT_FOLDER = "selectFolder";
public static String OPEN = "open";
public static String SAVE = "save";
public static String ORIGIN_SPOON = "spoon";
public static String ORIGIN_OTHER = "other";
public static String TRANSFORMATION = "transformation";
public static String JOB = "job";
private Repository repository;
private String command;
private String filter;
private String origin;
private RepositoryObjectInterface repositoryObject;
private String startDir;
private String title;
private String filename;
private String fileType;
public FileDialogOperation( String command ) {
this.command = command;
}
public FileDialogOperation( String command, String origin ) {
this.command = command;
this.origin = origin;
}
public String getCommand() {
return command;
}
public void setCommand( String command ) {
this.command = command;
}
public String getFilter() {
return filter;
}
public void setFilter( String filter ) {
this.filter = filter;
}
public String getOrigin() {
return origin;
}
public void setOrigin( String origin ) {
this.origin = origin;
}
public RepositoryObjectInterface getRepositoryObject() {
return repositoryObject;
}
public void setRepositoryObject( RepositoryObjectInterface repositoryObject ) {
this.repositoryObject = repositoryObject;
}
public String getStartDir() {
return startDir;
}
public void setStartDir( String startDir ) {
this.startDir = startDir;
}
public Repository getRepository() {
return repository;
}
public void setRepository( Repository repository ) {
this.repository = repository;
}
public String getTitle() {
return title;
}
public void setTitle( String title ) {
this.title = title;
}
public String getFilename() {
return filename;
}
public void setFilename( String filename ) {
this.filename = filename;
}
public String getFileType() {
return fileType;
}
public void setFileType( String fileType ) {
this.fileType = fileType;
}
}

View File

@ -0,0 +1,144 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2018 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.widgets.Control;
public class FormDataBuilder implements Cloneable {
private final FormAttachment MIN = new FormAttachment( 0, 0 );
private final FormAttachment MAX = new FormAttachment( 100, 0 );
protected FormData fd = new FormData();
public FormDataBuilder width( int width ) {
fd.width = width;
return this;
}
public FormDataBuilder height( int height ) {
fd.height = height;
return this;
}
public FormDataBuilder left( int p1, int p2 ) {
fd.left = new FormAttachment( p1, p2 );
return this;
}
public FormDataBuilder right( int p1, int p2 ) {
fd.right = new FormAttachment( p1, p2 );
return this;
}
public FormDataBuilder top( int p1, int p2 ) {
fd.top = new FormAttachment( p1, p2 );
return this;
}
public FormDataBuilder bottom( int p1, int p2 ) {
fd.bottom = new FormAttachment( p1, p2 );
return this;
}
public FormDataBuilder left( FormAttachment fa ) {
fd.left = fa;
return this;
}
public FormDataBuilder right( FormAttachment fa ) {
fd.right = fa;
return this;
}
public FormDataBuilder top( FormAttachment fa ) {
fd.top = fa;
return this;
}
public FormDataBuilder bottom( FormAttachment fa ) {
fd.bottom = fa;
return this;
}
public FormDataBuilder left( Control control, int margin ) {
return left( new FormAttachment( control, margin ) );
}
public FormDataBuilder top( Control control, int margin ) {
return top( new FormAttachment( control, margin ) );
}
public FormDataBuilder bottom( Control control, int margin ) {
return bottom( new FormAttachment( control, margin ) );
}
public FormDataBuilder right( Control control, int margin ) {
return right( new FormAttachment( control, margin ) );
}
public FormDataBuilder left() {
return left( MIN );
}
public FormDataBuilder right() {
return right( MAX );
}
public FormDataBuilder top() {
return top( MIN );
}
public FormDataBuilder bottom() {
return bottom( MAX );
}
public FormDataBuilder top( Control control ) {
return top( control, ConstUI.SMALL_MARGIN );
}
public FormDataBuilder fullWidth() {
return percentWidth( 100 );
}
public FormDataBuilder percentWidth( int width ) {
return left().right( width, 0 );
}
public FormDataBuilder fullSize() {
return fullWidth().top().bottom();
}
public FormData result() {
return fd;
}
@Override
protected FormDataBuilder clone() {
FormDataBuilder res = new FormDataBuilder();
return res.left( fd.left ).right( fd.right ).top( fd.top ).bottom( fd.bottom );
}
}

View File

@ -0,0 +1,90 @@
/*
* Copyright 2018 Hitachi Vantara. All rights reserved.
*
* 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
*/
package org.pentaho.di.ui.core;
import org.eclipse.swt.widgets.Shell;
import java.util.List;
/**
* Created by ddiroma on 8/15/18.
*/
public class GetFieldsDialogOperation {
private Shell shell;
private int width;
private int height;
private String filename;
private String title;
private List<String> paths;
public GetFieldsDialogOperation( Shell shell, int width, int height, String filename, String title, List<String>
paths ) {
this.shell = shell;
this.width = width;
this.height = height;
this.filename = filename;
this.title = title;
this.paths = paths;
}
public Shell getShell() {
return shell;
}
public void setShell( Shell shell ) {
this.shell = shell;
}
public int getWidth() {
return width;
}
public void setWidth( int width ) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight( int height ) {
this.height = height;
}
public String getFilename() {
return filename;
}
public void setFilename( String filename ) {
this.filename = filename;
}
public List<String> getPaths() {
return paths;
}
public void setPaths( List<String> paths ) {
this.paths = paths;
}
public String getTitle() {
return title;
}
public void setTitle( String title ) {
this.title = title;
}
}

View File

@ -0,0 +1,194 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.PaletteData;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.printing.PrintDialog;
import org.eclipse.swt.printing.Printer;
import org.eclipse.swt.printing.PrinterData;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.ui.core.dialog.EnterPrintDialog;
/**
* This class handles printing for Kettle.
*
* @author Matt
* @since 28-03-2004
*
*/
public class PrintSpool {
private PrinterData printerdata;
private Printer printer;
private PaletteData palette;
public PrintSpool() {
printerdata = Printer.getDefaultPrinterData();
if ( printerdata != null ) {
// Fail silently instead of crashing.
printer = new Printer( printerdata );
}
}
public PrinterData getPrinterData() {
return printerdata;
}
// Ask which printer to use...
public Printer getPrinter( Shell sh ) {
PrintDialog pd = new PrintDialog( sh );
printerdata = pd.open();
if ( printerdata != null ) {
if ( printer != null ) {
printer.dispose();
}
printer = new Printer( printerdata );
}
return printer;
}
public void dispose() {
if ( printer != null ) {
printer.dispose();
}
}
public int getDepth() {
return printer.getDepth();
}
public PaletteData getPaletteData() {
switch ( getDepth() ) {
case 1:
palette = new PaletteData( new RGB[] { new RGB( 0, 0, 0 ), new RGB( 255, 255, 255 ) } );
break;
default:
palette = new PaletteData( 0, 0, 0 );
palette.isDirect = true;
break;
}
return palette;
}
public void printImage( Shell sh, Image img ) {
if ( printerdata != null ) {
Rectangle imgbounds = img.getBounds();
Point max = new Point( imgbounds.width, imgbounds.height );
// What's the printers DPI?
Point dpi_printer = printer.getDPI();
// What's the screens DPI?
Point dpi_screen = Display.getCurrent().getDPI();
// Resize on printer: calculate factor:
double factorx = (double) dpi_printer.x / (double) dpi_screen.x;
double factory = (double) dpi_printer.y / (double) dpi_screen.y;
// Get size of 1 page?
Rectangle page = printer.getBounds();
double margin_left = 0.40; // 0,40 inch about 1cm
double margin_right = 0.40;
double margin_top = 0.40;
double margin_bottom = 0.40;
EnterPrintDialog epd =
new EnterPrintDialog(
sh, 1, 1, 100, factorx, factory, page, margin_left, margin_right, margin_top, margin_bottom, img );
if ( epd.open() == SWT.OK ) {
double page_left = epd.leftMargin * dpi_printer.x;
double page_right = epd.rightMargin * dpi_printer.x;
double page_top = epd.topMargin * dpi_printer.y;
double page_bottom = epd.bottomMargin * dpi_printer.y;
double page_sizex = page.width - page_left - page_right;
double page_sizey = page.height - page_top - page_bottom;
double size_on_paperx = max.x * factorx;
double size_on_papery = max.y * factory;
double actual_sizex = size_on_paperx * epd.scale / 100;
double actual_sizey = size_on_papery * epd.scale / 100;
// Create new print job.
printer.startJob( "Kettle : Spoon print job" );
// How much of the image do we print on each page: all or just a page worth of pixels?
for ( int c = 0; c < epd.nrcols; c++ ) {
double left_to_printx = actual_sizex - page_sizex * c;
double printx =
( left_to_printx > page_sizex ) ? page_sizex : ( left_to_printx >= 0 ? left_to_printx : 0 );
for ( int r = 0; r < epd.nrrows; r++ ) {
double left_to_printy = actual_sizey - page_sizey * r;
double printy =
( left_to_printy > page_sizey ) ? page_sizey : ( left_to_printy >= 0 ? left_to_printy : 0 );
int startx = (int) ( actual_sizex - left_to_printx );
int starty = (int) ( actual_sizey - left_to_printy );
int fromx = (int) ( startx / ( factorx * epd.scale / 100 ) );
int fromy = (int) ( starty / ( factory * epd.scale / 100 ) );
int imx = (int) ( max.x * printx / actual_sizex ) - 1;
int imy = (int) ( max.y * printy / actual_sizey ) - 1;
printer.startPage();
GC gc_printer = new GC( printer );
gc_printer.drawImage(
img, fromx, fromy, imx, imy, (int) page_left, (int) page_top, (int) printx, (int) printy );
// ShowImageDialog sid = new ShowImageDialog(sh, props, img);
// sid.open();
System.out.println( "img dept = " + img.getImageData().depth );
System.out.println( "prn dept = " + printer.getDepth() );
System.out.println( "img size = ("
+ img.getBounds().x + "," + img.getBounds().y + ") : (" + img.getBounds().width + ","
+ img.getBounds().height + ")" );
System.out.println( "fromx="
+ fromx + ", fromy=" + fromy + ", imx=" + imx + ", imy=" + imy + ", page_left=" + (int) page_left
+ ", page_top=" + (int) page_top + ", printx=" + (int) printx + ", printy=" + (int) printy );
printer.endPage();
gc_printer.dispose();
}
}
printer.endJob();
printer.dispose();
}
img.dispose();
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,137 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core;
import org.apache.commons.io.FilenameUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.util.Assert;
import org.pentaho.di.ui.core.widget.TextVar;
/**
*
* @author <a href="mailto:thomas.hoedl@aschauer-edv.at">Thomas Hoedl(asc042)</a>
*
*/
public class SimpleFileSelection extends SelectionAdapter {
/**
* The default filter extension.
*/
public static final String DEFAULT_FILTER_EXTENSION = "*";
/**
* The default file extension.
*/
public static final String DEFAULT_FILTER_NAME = "All files (*.*)";
private final Shell shell;
private final TextVar textVar;
private final String[] filterExtensions;
private final String[] filterNames;
/**
* Constructor.
*
* @param shell
* shell to set.
* @param textVar
* text variable to edit.
* @param filterExtensions
* filter extensions to set.
* @param filterNames
* filter names to set.
* @throws IllegalArgumentException
* if shell or text variable is null.
*/
public SimpleFileSelection( final Shell shell, final TextVar textVar, final String[] filterExtensions,
final String[] filterNames ) throws IllegalArgumentException {
super();
Assert.assertNotNull( shell, "Shell cannot be null" );
Assert.assertNotNull( textVar, "Text var cannot be null" );
Assert.assertNotNull( filterNames, "Filter names cannot be null" );
Assert.assertNotNull( filterExtensions, "Filter extensions cannot be null" );
this.shell = shell;
this.textVar = textVar;
this.filterExtensions = new String[filterExtensions.length];
System.arraycopy( filterExtensions, 0, this.filterExtensions, 0, filterExtensions.length );
this.filterNames = new String[filterNames.length];
System.arraycopy( filterNames, 0, this.filterNames, 0, filterNames.length );
}
/**
* Constructor.
*
* @param shell
* the shell to set.
* @param textVar
* the text variable to edit.
* @throws IllegalArgumentException
* if shell or text variable is null.
*/
public SimpleFileSelection( final Shell shell, final TextVar textVar ) throws IllegalArgumentException {
this( shell, textVar, new String[] { DEFAULT_FILTER_EXTENSION }, new String[] { DEFAULT_FILTER_NAME } );
}
/**
* Constructor.
*
* @param shell
* the shell to set.
* @param textVar
* the text variable to edit.
* @param filterNames
* the filter names to use.
* @throws IllegalArgumentException
* if shell or text variable is null.
*/
public SimpleFileSelection( final Shell shell, final TextVar textVar, final String... filterNames ) throws IllegalArgumentException {
this( shell, textVar, new String[] { DEFAULT_FILTER_EXTENSION }, filterNames );
}
/**
* {@inheritDoc}
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetSelected( final SelectionEvent event ) {
final FileDialog dialog = new FileDialog( this.shell, SWT.OPEN );
dialog.setFilterExtensions( this.filterExtensions );
dialog.setFilterNames( this.filterNames );
if ( this.textVar.getText() != null ) {
dialog.setFileName( this.textVar.getText() );
}
if ( dialog.open() != null ) {
final String filename = FilenameUtils.concat( dialog.getFilterPath(), dialog.getFileName() );
this.textVar.setText( filename );
}
}
}

View File

@ -0,0 +1,136 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2018 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core;
import org.apache.commons.lang.StringUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Listener;
import org.pentaho.di.core.exception.KettleStepException;
import org.pentaho.di.core.row.RowMetaInterface;
import org.pentaho.di.core.row.value.ValueMetaBase;
import org.pentaho.di.trans.TransMeta;
import org.pentaho.di.trans.step.BaseStepMeta;
import org.pentaho.di.ui.core.widget.ComboVar;
import java.util.List;
public abstract class WidgetUtils {
private WidgetUtils() {
}
public static void setFormLayout( Composite composite, int margin ) {
FormLayout formLayout = new FormLayout();
formLayout.marginWidth = margin;
formLayout.marginHeight = margin;
composite.setLayout( formLayout );
}
/**
* creates a ComboVar populated with fields from the previous step.
* @param parentComposite - the composite in which the widget will be placed
* @param props - PropsUI props for L&F
* @param stepMeta - stepMeta of the current step
* @param formData - FormData to use for placement
*/
public static ComboVar createFieldDropDown(
Composite parentComposite, PropsUI props, BaseStepMeta stepMeta, FormData formData ) {
TransMeta transMeta = stepMeta.getParentStepMeta().getParentTransMeta();
ComboVar fieldDropDownCombo = new ComboVar( transMeta, parentComposite, SWT.SINGLE | SWT.LEFT | SWT.BORDER );
props.setLook( fieldDropDownCombo );
fieldDropDownCombo.addModifyListener( e -> stepMeta.setChanged() );
fieldDropDownCombo.setLayoutData( formData );
Listener focusListener = e -> {
String current = fieldDropDownCombo.getText();
fieldDropDownCombo.getCComboWidget().removeAll();
fieldDropDownCombo.setText( current );
try {
RowMetaInterface rmi = transMeta.getPrevStepFields( stepMeta.getParentStepMeta().getName() );
List ls = rmi.getValueMetaList();
for ( Object l : ls ) {
ValueMetaBase vmb = (ValueMetaBase) l;
fieldDropDownCombo.add( vmb.getName() );
}
} catch ( KettleStepException ex ) {
// can be ignored, since previous step may not be set yet.
stepMeta.logDebug( ex.getMessage(), ex );
}
};
fieldDropDownCombo.getCComboWidget().addListener( SWT.FocusIn, focusListener );
return fieldDropDownCombo;
}
/**
* Creates a FormData object specifying placement below anchorControl, with pixelsBetweeenAnchor space between
* anchor and the control.
*/
public static FormData formDataBelow( Control anchorControl, int width, int pixelsBetweenAnchor ) {
FormData fdMessageField = new FormData();
fdMessageField.left = new FormAttachment( 0, 0 );
fdMessageField.top = new FormAttachment( anchorControl, pixelsBetweenAnchor );
fdMessageField.right = new FormAttachment( 0, width );
return fdMessageField;
}
public static CTabFolder createTabFolder( Composite composite, FormData fd, String... titles ) {
Composite container = new Composite( composite, SWT.NONE );
WidgetUtils.setFormLayout( container, 0 );
container.setLayoutData( fd );
CTabFolder tabFolder = new CTabFolder( container, SWT.NONE );
tabFolder.setLayoutData( new FormDataBuilder().fullSize().result() );
for ( String title : titles ) {
if ( title.length() < 8 ) {
title = StringUtils.rightPad( title, 8 );
}
Composite tab = new Composite( tabFolder, SWT.NONE );
WidgetUtils.setFormLayout( tab, ConstUI.MEDUIM_MARGIN );
CTabItem tabItem = new CTabItem( tabFolder, SWT.NONE );
tabItem.setText( title );
tabItem.setControl( tab );
}
tabFolder.setSelection( 0 );
return tabFolder;
}
public static FormData firstColumn( Control top ) {
return new FormDataBuilder().top( top, ConstUI.MEDUIM_MARGIN ).percentWidth( 47 ).result();
}
public static FormData secondColumn( Control top ) {
return new FormDataBuilder().top( top, ConstUI.MEDUIM_MARGIN ).right().left( 53, 0 ).result();
}
}

View File

@ -0,0 +1,116 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.auth;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.gui.SpoonFactory;
import org.pentaho.di.core.logging.LogChannel;
import org.pentaho.di.core.logging.LogChannelInterface;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.auth.controller.AuthProviderController;
import org.pentaho.di.ui.core.auth.model.NamedProvider;
import org.pentaho.ui.xul.XulDomContainer;
import org.pentaho.ui.xul.XulException;
import org.pentaho.ui.xul.XulRunner;
import org.pentaho.ui.xul.binding.BindingFactory;
import org.pentaho.ui.xul.swt.SwtBindingFactory;
import org.pentaho.ui.xul.swt.SwtXulLoader;
import org.pentaho.ui.xul.swt.SwtXulRunner;
import java.util.Enumeration;
import java.util.List;
import java.util.ResourceBundle;
/**
* Created by gmoran on 3/19/14.
*/
public class AuthProviderDialog {
private static String XUL_FILE = "org/pentaho/di/ui/core/auth/xul/authManager.xul";
private LogChannelInterface log;
private AuthProviderController controller = new AuthProviderController();
private XulDomContainer container;
private static final Class<?> CLZ = AuthProviderDialog.class;
private ResourceBundle resourceBundle = new ResourceBundle() {
@Override
public Enumeration<String> getKeys() {
return null;
}
@Override
protected Object handleGetObject( String key ) {
return BaseMessages.getString( CLZ, key );
}
};
public AuthProviderDialog( Shell shell ) {
log = new LogChannel( resourceBundle.getString( "log.name" ) );
try {
SwtXulLoader xulLoader = new SwtXulLoader();
xulLoader.setOuterContext( shell );
container = xulLoader.loadXul( XUL_FILE, resourceBundle );
final XulRunner runner = new SwtXulRunner();
runner.addContainer( container );
BindingFactory bf = new SwtBindingFactory();
bf.setDocument( container.getDocumentRoot() );
controller.setBindingFactory( bf );
controller.setResourceBundle( resourceBundle );
container.addEventHandler( controller );
try {
runner.initialize();
} catch ( XulException e ) {
SpoonFactory.getInstance().messageBox( e.getLocalizedMessage(),
resourceBundle.getString( "error.on_initialization" ), false, Const.ERROR );
log.logError( resourceBundle.getString( "error.on_initialization" ), e );
}
} catch ( XulException e ) {
log.logError( resourceBundle.getString( "error.on_initialization" ), e );
}
}
public void show() {
controller.open();
}
public void addProviders( List<NamedProvider> providers ) {
controller.addProviders( providers );
}
public BindingFactory getBindingFactory() {
return controller.getBindingFactory();
}
}

View File

@ -0,0 +1,392 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.auth.controller;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.ResourceBundle;
import org.pentaho.di.core.logging.LogChannel;
import org.pentaho.di.core.logging.LogChannelInterface;
import org.pentaho.di.ui.core.auth.model.AuthProvider;
import org.pentaho.di.ui.core.auth.model.BasicAuthProvider;
import org.pentaho.di.ui.core.auth.model.KerberosAuthProvider;
import org.pentaho.di.ui.core.auth.model.NamedModelObject;
import org.pentaho.di.ui.core.auth.model.NamedProvider;
import org.pentaho.di.ui.core.auth.model.NoAuthAuthProvider;
import org.pentaho.di.ui.core.auth.model.ObjectListModel;
import org.pentaho.ui.xul.XulException;
import org.pentaho.ui.xul.binding.Binding;
import org.pentaho.ui.xul.binding.BindingConvertor;
import org.pentaho.ui.xul.binding.BindingFactory;
import org.pentaho.ui.xul.components.XulFileDialog;
import org.pentaho.ui.xul.components.XulTextbox;
import org.pentaho.ui.xul.containers.XulDialog;
import org.pentaho.ui.xul.impl.AbstractXulEventHandler;
@SuppressWarnings( { "unchecked" } )
public class AuthProviderController extends AbstractXulEventHandler {
protected BindingConvertor<NamedModelObject<NamedProvider>, String> selectedItemsNameBinding =
new SelectedToStringConvertor();
protected BindingConvertor<NamedModelObject<NamedProvider>, Object> selectedItemsItemBinding =
new SelectedToItemConvertor();
protected BindingConvertor<Collection<NamedModelObject<NamedProvider>>, Boolean> itemCountBinding =
new RowCountToBooleanConvertor<NamedModelObject<NamedProvider>>();
private XulDialog xulDialog;
private BindingFactory bf;
private ObjectListModel model = new ObjectListModel();
AuthProvider activeProvider = null;
private static LogChannelInterface log;
ResourceBundle resourceBundle;
public AuthProviderController() {
log = new LogChannel( "AuthProviderController" );
setName( "handler" );
}
public void setBindingFactory( BindingFactory bf ) {
this.bf = bf;
}
public BindingFactory getBindingFactory() {
return bf;
}
public void init() {
xulDialog = ( (XulDialog) getXulDomContainer().getDocumentRoot().getRootElement() );
if ( bf != null ) {
bind();
}
}
public void setResourceBundle( ResourceBundle res ) {
resourceBundle = res;
}
public void open() {
if ( xulDialog != null ) {
xulDialog.show();
}
}
/**
* This will change to pull providers from the auth persistencemanager
*
* @return Collection<AuthProvider>
*/
public Collection<AuthProvider> getPossibleTypes() {
ArrayList<AuthProvider> types = new ArrayList<AuthProvider>();
types.add( new NoAuthAuthProvider( bf ) );
types.add( new KerberosAuthProvider( bf ) );
types.add( new BasicAuthProvider( bf ) );
return types;
}
public void setNewOverlay( AuthProvider provider ) throws XulException {
if ( provider == null ) {
provider = new NoAuthAuthProvider( bf );
}
// Don't use this provider... it is the one that is created to populate
// the combobox. Only use it to select the proper overlay, then
// bind the provider associated with the NamedObject selected
// in the main authProvider list.
if ( this.activeProvider != null ) {
getXulDomContainer().removeOverlay( activeProvider.getOverlay() );
}
getXulDomContainer().loadOverlay( provider.getOverlay() );
if ( model.getSelectedItem() != null ) {
AuthProvider current = (AuthProvider) model.getSelectedItem().getItem();
// Only bind the selected provider if it matches the overlay... the selected
// provider may not have been updated and cloned yet.
if ( current.getOverlay().equalsIgnoreCase( provider.getOverlay() ) ) {
try {
current.bind();
} catch ( Exception e ) {
log.logError( resourceBundle.getString( "error.on_bind" ), e );
}
}
}
this.activeProvider = provider;
}
public String getNewOverlay() {
return "";
}
private void bind() {
try {
this.bf.setBindingType( Binding.Type.ONE_WAY );
// Loads the authorization types into the "Method" combobox
bf.createBinding( this, "possibleTypes", "method_list", "elements" ).fireSourceChanged();
// Manage enabling/disabling layout based on item availability in the main authProvider list.
bf.createBinding( model.getModelObjects(), "children", "remove_button", "disabled", itemCountBinding )
.fireSourceChanged();
bf.createBinding( model.getModelObjects(), "children", "name", "disabled", itemCountBinding ).fireSourceChanged();
bf.createBinding( model.getModelObjects(), "children", "method_list", "disabled", itemCountBinding )
.fireSourceChanged();
// Manage enabling/disabling layout based on selection in the main authProvider list.
bf.createBinding( "auth_list", "selectedItem", "name", "!disabled", BindingConvertor.object2Boolean() )
.fireSourceChanged();
bf.createBinding( "auth_list", "selectedItem", "method_list", "!disabled", BindingConvertor.object2Boolean() )
.fireSourceChanged();
bf.createBinding( "auth_list", "selectedItem", "remove_button", "!disabled", BindingConvertor.object2Boolean() )
.fireSourceChanged();
bf.setBindingType( Binding.Type.BI_DIRECTIONAL );
// When an authorization entry is selected, select entry in model
bf.createBinding( "auth_list", "selectedItem", this.model, "selectedItem" );
// Syncs elements in the model and lists them in the authorization entry list
Binding listBinding = this.bf.createBinding( this.model.getModelObjects(), "children", "auth_list", "elements" );
listBinding.fireSourceChanged();
// Update the entry name textbox when a new entry is selected in the authorization entry list
bf.createBinding( this.model, "selectedItem", "name", "value", selectedItemsNameBinding ).fireSourceChanged();
// Change the overlay when the user changes the "Method" in the method combobox
bf.createBinding( this, "newOverlay", "method_list", "selectedItem" ).fireSourceChanged();
// Update the method combobox with the appropriate selection for the selected authorization entry
bf.createBinding( this.model, "selectedItem", "method_list", "selectedItem", selectedItemsItemBinding )
.fireSourceChanged();
// Because the programmatic selection of the item in the combobox does not fire events, we need
// to bind the main authProvider selection to the changing of the overlay
bf.createBinding( this.model, "selectedItem", this, "newOverlay", selectedItemsItemBinding );
} catch ( XulException e ) {
log.logError( resourceBundle.getString( "error.on_bind" ), e );
} catch ( InvocationTargetException e ) {
log.logError( resourceBundle.getString( "error.on_execution" ), e );
}
}
public void onAccept() {
// save model via PersistenceManager here ...
this.xulDialog.hide();
}
public void onCancel() {
this.xulDialog.hide();
}
public void addNew() {
NamedProvider provider = new NamedProvider( generateUniqueName(), new NoAuthAuthProvider( bf ) );
this.model.add( provider );
this.model.setSelectedItem( provider );
}
private String generateUniqueName() {
String name = resourceBundle.getString( "uniquename.provider" );
int index = 0;
boolean good = false;
String potentialName = null;
while ( !good ) {
potentialName = name.concat( Integer.toString( ++index ) );
boolean found = false;
for ( NamedModelObject<NamedProvider> o : model.getModelObjects() ) {
if ( o.getName().equalsIgnoreCase( potentialName ) ) {
found = true;
break;
}
}
good = !found;
}
return potentialName;
}
public void remove() {
int index = this.model.getModelObjects().indexOf( this.model.getSelectedItem() );
if ( index >= 1 ) {
index -= 1;
}
this.model.getModelObjects().remove( this.model.getSelectedItem() );
if ( !model.getModelObjects().isEmpty() ) {
this.model.setSelectedItem( model.getModelObjects().get( index ) );
} else {
this.model.setSelectedItem( null );
}
}
public void browse() {
try {
XulTextbox filename = (XulTextbox) document.getElementById( "keytab" );
XulFileDialog dialog = (XulFileDialog) document.createElement( "filedialog" );
XulFileDialog.RETURN_CODE retval = dialog.showOpenDialog();
if ( retval == XulFileDialog.RETURN_CODE.OK ) {
File file = (File) dialog.getFile();
filename.setValue( file.getAbsolutePath() );
}
} catch ( XulException e ) {
log.logError( resourceBundle.getString( "error.file_browse" ), e );
}
}
public void addProviders( List<NamedProvider> providers ) {
if ( providers == null || providers.isEmpty() ) {
return;
}
for ( NamedProvider provider : providers ) {
model.add( provider );
}
model.setSelectedItem( model.getModelObjects().get( 0 ) );
}
private class SelectedToItemConvertor extends BindingConvertor<NamedModelObject<NamedProvider>, Object> {
private SelectedToItemConvertor() {
}
public Object sourceToTarget( NamedModelObject<NamedProvider> value ) {
if ( value == null ) {
return null;
}
return value.getItem();
}
public NamedModelObject<NamedProvider> targetToSource( Object value ) {
if ( model.getSelectedItem() != null ) {
AuthProvider provider = (AuthProvider) value;
AuthProvider selectedProvider = (AuthProvider) model.getSelectedItem().getItem();
AuthProvider providerToUse = null;
if ( selectedProvider.getOverlay().equals( provider.getOverlay() ) ) {
providerToUse = selectedProvider;
} else {
// Clone the provider... the one passed in is the provider used in the method
// combobox... we don't want that instance in the main list.
try {
providerToUse = provider.clone();
providerToUse.bind();
} catch ( Exception e ) {
log.logError( resourceBundle.getString( "error.new_provider" ), e );
}
}
model.setItem( model.getSelectedItem(), providerToUse );
}
return model.getSelectedItem();
}
}
private class SelectedToStringConvertor extends BindingConvertor<NamedModelObject<NamedProvider>, String> {
private SelectedToStringConvertor() {
}
public String sourceToTarget( NamedModelObject<NamedProvider> value ) {
if ( value == null ) {
return "";
}
return value.getName();
}
public NamedModelObject<NamedProvider> targetToSource( String value ) {
if ( model.getSelectedItem() != null ) {
model.setName( value );
}
return model.getSelectedItem();
}
}
private class RowCountToBooleanConvertor<T> extends BindingConvertor<Collection<T>, Boolean> {
@Override
public Boolean sourceToTarget( Collection<T> value ) {
return ( value == null ) || ( value.isEmpty() );
}
@Override
public Collection<T> targetToSource( Boolean value ) {
return null;
}
}
/**
* Exposed only for junit tests
*
* @return ObjectListModel
*/
ObjectListModel getModel() {
return model;
}
}

View File

@ -0,0 +1,19 @@
dialog.title=Authentication Provider Manager
dialog.cancel=Cancel
dialog.ok=OK
dialog.name=Name
dialog.method=Method
basic.username=Username
basic.password=Password
kerberos.principal=Username
kerberos.password=Password
kerberos.usekeytab=Use Keytab
kerberos.keytab=Keytab
error.on_initialization=Error initializing dialog
log.name=Authentication Provider Manager Dialog
controller.name= Authentication Provider Controller
uniquename.provider=provider_
error.on_bind=Error attempting to bind ui objects.
error.on_execution=Error executing bound methods on ui objects.
error.file_browse=Error creating file browse dialog.
error.new_provider=Error creating new provider.

View File

@ -0,0 +1,19 @@
dialog.title=\u8a8d\u8a3c\u30d7\u30ed\u30d0\u30a4\u30c0\u7ba1\u7406
dialog.cancel=\u30ad\u30e3\u30f3\u30bb\u30eb
dialog.ok=OK
dialog.name=\u540d\u79f0
dialog.method=\u30e1\u30bd\u30c3\u30c9
basic.username=\u30e6\u30fc\u30b6\u30fc\u540d
basic.password=\u30d1\u30b9\u30ef\u30fc\u30c9
kerberos.principal=\u30e6\u30fc\u30b6\u30fc\u540d
kerberos.password=\u30d1\u30b9\u30ef\u30fc\u30c9
kerberos.usekeytab=Keytab\u3092\u4f7f\u7528
kerberos.keytab=Keytab
error.on_initialization=Error initializing dialog
log.name=Authentication Provider Manager Dialog
controller.name= \u8a8d\u8a3c\u30d7\u30ed\u30d0\u30a4\u30c0\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc
uniquename.provider=provider_
error.on_bind=Error attempting to bind ui objects.
error.on_execution=Error executing bound methods on ui objects.
error.file_browse=Error creating file browse dialog.
error.new_provider=Error creating new provider.

View File

@ -0,0 +1,102 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.auth.model;
import org.pentaho.ui.xul.XulEventSourceAdapter;
import org.pentaho.ui.xul.XulException;
import org.pentaho.ui.xul.binding.Binding;
import org.pentaho.ui.xul.binding.BindingException;
import org.pentaho.ui.xul.binding.BindingFactory;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
public abstract class AbstractAuthProvider extends XulEventSourceAdapter
implements AuthProvider {
private String principal;
BindingFactory bf;
private java.util.List<Binding> elementBindings = new ArrayList<Binding>();
public AbstractAuthProvider( BindingFactory bf ) {
this.bf = bf;
}
public String getPrincipal() {
return this.principal;
}
public void setPrincipal( String principal ) {
this.principal = principal;
}
public String getOverlay() {
return "org/pentaho/di/ui/core/auth/xul/".concat( getProviderDescription().toLowerCase() ).concat( ".xul" );
}
@Override
public void bind() throws BindingException, XulException, InvocationTargetException {
unbind();
elementBindings = new ArrayList<Binding>();
Binding b = bf.createBinding( this, "principal", "principal", "value" );
b.setBindingType( Binding.Type.BI_DIRECTIONAL );
elementBindings.add( b );
addBindings( elementBindings, bf );
fireBindingsChanged();
}
protected abstract void addBindings( List<Binding> bindings, BindingFactory bf );
@Override
public void unbind() {
for ( Binding bind : elementBindings ) {
bind.destroyBindings();
}
elementBindings.clear();
}
@Override
public void fireBindingsChanged() throws XulException, InvocationTargetException {
for ( Binding bind : elementBindings ) {
bind.fireSourceChanged();
}
}
@Override
public AuthProvider clone() throws CloneNotSupportedException {
return (AuthProvider) super.clone();
}
public String toString() {
return getProviderDescription();
}
}

View File

@ -0,0 +1,46 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.auth.model;
import org.pentaho.ui.xul.XulException;
import org.pentaho.ui.xul.binding.BindingException;
import java.lang.reflect.InvocationTargetException;
public abstract interface AuthProvider extends Cloneable {
public abstract String getPrincipal();
public abstract void setPrincipal( String paramString );
public abstract String getProviderDescription();
public abstract String getOverlay();
public void bind() throws BindingException, XulException, InvocationTargetException;
public void unbind();
public AuthProvider clone() throws CloneNotSupportedException;
public void fireBindingsChanged() throws XulException, InvocationTargetException;
}

View File

@ -0,0 +1,65 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.auth.model;
import org.pentaho.ui.xul.binding.Binding;
import org.pentaho.ui.xul.binding.BindingFactory;
import java.util.List;
public class BasicAuthProvider extends AbstractAuthProvider {
private String password;
public BasicAuthProvider( BindingFactory bf ) {
super( bf );
}
public String getPassword() {
return this.password;
}
public void setPassword( String password ) {
this.password = password;
}
public String getProviderDescription() {
return "Basic";
}
@Override
protected void addBindings( List<Binding> bindings, BindingFactory bf ) {
Binding b = bf.createBinding( this, "password", "password", "value" );
b.setBindingType( Binding.Type.BI_DIRECTIONAL );
bindings.add( b );
}
}

View File

@ -0,0 +1,97 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.auth.model;
import java.util.List;
import org.pentaho.ui.xul.binding.Binding;
import org.pentaho.ui.xul.binding.BindingFactory;
public class KerberosAuthProvider extends BasicAuthProvider {
private boolean useKeytab;
private String keytabFile;
public KerberosAuthProvider( BindingFactory bf ) {
super( bf );
}
public boolean isUseKeytab() {
return this.useKeytab;
}
public void setUseKeytab( boolean useKeytab ) {
this.useKeytab = useKeytab;
}
public String getKeytabFile() {
return this.keytabFile;
}
public void setKeytabFile( String keytabFile ) {
this.keytabFile = keytabFile;
}
public String getProviderDescription() {
return "Kerberos";
}
@Override
protected void addBindings( List<Binding> bindings, BindingFactory bf ) {
super.addBindings( bindings, bf );
Binding b = bf.createBinding( this, "keytabFile", "keytab", "value" );
b.setBindingType( Binding.Type.BI_DIRECTIONAL );
bindings.add( b );
b = bf.createBinding( this, "useKeytab", "useKeytab", "checked" );
b.setBindingType( Binding.Type.BI_DIRECTIONAL );
bindings.add( b );
b = bf.createBinding( "useKeytab", "checked", "keytab", "!disabled" );
b.setBindingType( Binding.Type.ONE_WAY );
bindings.add( b );
b = bf.createBinding( "useKeytab", "checked", "browse", "!disabled" );
b.setBindingType( Binding.Type.ONE_WAY );
bindings.add( b );
b = bf.createBinding( "useKeytab", "checked", "password", "disabled" );
b.setBindingType( Binding.Type.ONE_WAY );
bindings.add( b );
b = bf.createBinding( "useKeytab", "checked", "principal", "disabled" );
b.setBindingType( Binding.Type.ONE_WAY );
bindings.add( b );
}
}

View File

@ -0,0 +1,33 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.auth.model;
public abstract interface NamedModelObject<T> {
public abstract String getName();
public abstract void setName( String paramString );
public abstract void setItem( T paramT );
public abstract T getItem();
}

View File

@ -0,0 +1,69 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.auth.model;
import org.pentaho.di.core.logging.LogChannel;
import org.pentaho.ui.xul.XulEventSourceAdapter;
public class NamedProvider extends XulEventSourceAdapter implements NamedModelObject<AuthProvider> {
String name = null;
AuthProvider provider = null;
public NamedProvider( String name, AuthProvider provider ) {
this.name = name;
this.provider = provider;
}
public String getName() {
return this.name;
}
public void setName( String name ) {
String prev = this.name;
this.name = name;
firePropertyChange( "name", prev, this.name );
}
public void setItem( AuthProvider object ) {
this.provider = object;
try {
provider.fireBindingsChanged();
} catch ( Exception e ) {
LogChannel.GENERAL.logError( "Binding event error while attempting to select provider.", e );
}
}
public AuthProvider getItem() {
return this.provider;
}
public String toString() {
return this.name;
}
}

View File

@ -0,0 +1,52 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.auth.model;
import java.util.List;
import org.pentaho.ui.xul.binding.Binding;
import org.pentaho.ui.xul.binding.BindingFactory;
public class NoAuthAuthProvider extends AbstractAuthProvider {
public NoAuthAuthProvider( BindingFactory bf ) {
super( bf );
}
public String getPrincipal() {
return null;
}
public String getProviderDescription() {
return "NoAuth";
}
@Override
protected void addBindings( List<Binding> bindings, BindingFactory bf ) {
}
@Override
public void bind() {
}
}

View File

@ -0,0 +1,77 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.auth.model;
import org.pentaho.ui.xul.XulEventSourceAdapter;
import org.pentaho.ui.xul.util.AbstractModelList;
@SuppressWarnings( { "unchecked", "rawtypes" } )
public class ObjectListModel extends XulEventSourceAdapter {
private AbstractModelList<NamedModelObject> modelObjects = new AbstractModelList<NamedModelObject>();
private NamedModelObject selected = null;
protected NamedModelObject selectedItem;
protected Object value;
public AbstractModelList<NamedModelObject> getModelObjects() {
return this.modelObjects;
}
public NamedModelObject getSelectedItem() {
return this.selected;
}
public void setSelectedItem( NamedModelObject selected ) {
NamedModelObject prev = this.selected;
this.selected = selected;
firePropertyChange( "selectedItem", prev, selected );
}
public void add( NamedModelObject item ) {
this.modelObjects.add( item );
}
public void setName( String value ) {
if ( selected != null ) {
selected.setName( value );
}
}
public String getName() {
if ( this.selected != null ) {
return this.selected.getName();
}
return "";
}
public void setItem( NamedModelObject selectedItem, Object value ) {
selectedItem.setItem( value );
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

View File

@ -0,0 +1,79 @@
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<!--
~ This library is free software; you can redistribute it and/or
~ modify it under the terms of the GNU Lesser General Public
~ License as published by the Free Software Foundation; either
~ version 2.1 of the License, or (at your option) any later version.
~
~ This library is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
~ Lesser General Public License for more details.
~
~ You should have received a copy of the GNU Lesser General Public
~ License along with this library; if not, write to the Free Software
~ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
~
~ Copyright 2009 - 2017 Hitachi Vantara. All rights reserved.
-->
<dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:pen="http://www.pentaho.org/2008/xul"
resizable="true"
buttonlabelcancel="${dialog.cancel}"
buttonlabelaccept="${dialog.ok}"
buttons="accept,cancel"
id="main_dialog"
width="700"
height="300"
buttonalign="right"
title="${dialog.title}"
ondialogaccept="handler.onAccept()"
ondialogcancel="handler.onCancel()"
onload="handler.init()"
>
<hbox flex="1" id="outer_container">
<vbox flex="1">
<hbox>
<spacer flex="1"/>
<button id="add_button" image="org/pentaho/di/ui/core/auth/resources/Add.png" onclick="handler.addNew()"/>
<button id="remove_button" pen:disabledimage="org/pentaho/di/ui/core/auth/resources/dRemove.png" image="org/pentaho/di/ui/core/auth/resources/Remove.png" onclick="handler.remove()"/>
</hbox>
<listbox flex="2" id="auth_list" disabled="false" seltype="single" pen:binding="name">
</listbox>
</vbox>
<vbox flex="4">
<grid id="method_grid">
<columns>
<column/>
<column flex="1"/>
</columns>
<rows>
<row>
<label value="${dialog.name}"/>
<textbox flex="1" id="name"/>
</row>
<row>
<label value="${dialog.method}"/>
<menulist label="method" id="method_list">
<menupopup>
</menupopup>
</menulist>
</row>
</rows>
</grid>
<hbox id="overlay_real_estate" flex="1">
</hbox>
</vbox>
</hbox>
</dialog>

View File

@ -0,0 +1,27 @@
<overlay>
<hbox id="overlay_real_estate" flex="1">
<groupbox id="general-settings-box" flex="1">
<grid id="method_grid" flex="1">
<columns>
<column/>
<column flex="1"/>
<column/>
</columns>
<rows>
<row>
<label value="${basic.username}"/>
<textbox flex="1" id="principal"/>
<spacer/>
</row>
<row>
<label value="${basic.password}"/>
<textbox flex="1" id="password" type="password"/>
<spacer/>
</row>
</rows>
</grid>
</groupbox>
</hbox>
</overlay>

View File

@ -0,0 +1,37 @@
<overlay>
<hbox id="overlay_real_estate" flex="1">
<groupbox id="general-settings-box" flex="1">
<grid id="method_grid" flex="1">
<columns>
<column/>
<column flex="1"/>
<column/>
</columns>
<rows>
<row>
<label value="${kerberos.principal}"/>
<textbox flex="1" id="principal"/>
<spacer/>
</row>
<row>
<label value="${kerberos.password}"/>
<textbox flex="1" id="password" type="password"/>
<spacer/>
</row>
<row>
<label value="${kerberos.usekeytab}"/>
<checkbox id="useKeytab" />
<spacer/>
</row>
<row>
<label value="${kerberos.keytab}"/>
<textbox flex="1" id="keytab"/>
<button id="browse" label="..." onclick="handler.browse()"/>
</row>
</rows>
</grid>
</groupbox>
</hbox>
</overlay>

View File

@ -0,0 +1,16 @@
<overlay>
<hbox id="overlay_real_estate" flex="1">
<groupbox id="general-settings-box" flex="1">
<grid id="method_grid" flex="1">
<columns>
<column/>
<column flex="1"/>
<column/>
</columns>
<rows></rows>
</grid>
</groupbox>
</hbox>
</overlay>

View File

@ -0,0 +1,206 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2018 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.util.ArrayList;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.RowMetaAndData;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.database.DatabaseTestResults;
import org.pentaho.di.core.row.RowMetaInterface;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.database.dialog.tags.ExtTextbox;
import org.pentaho.di.ui.core.dialog.ErrorDialog;
import org.pentaho.di.ui.core.dialog.PreviewRowsDialog;
import org.pentaho.di.ui.core.dialog.ShowMessageDialog;
import org.pentaho.ui.database.event.DataHandler;
import org.pentaho.ui.xul.components.XulTextbox;
import org.pentaho.ui.xul.containers.XulTree;
public class DataOverrideHandler extends DataHandler {
boolean cancelPressed = false;
@Override
public void onCancel() {
super.onCancel();
this.cancelPressed = true;
}
@Override
public void onOK() {
super.onOK();
this.cancelPressed = false;
}
@Override
public Object getData() {
if ( !cancelPressed ) {
return super.getData();
} else {
return null;
}
}
private static Class<?> PKG = DataOverrideHandler.class; // for i18n purposes, needed by Translator2!!
private java.util.List<DatabaseMeta> databases;
public DataOverrideHandler() {
}
public void explore() {
Shell parent = getShell();
DatabaseMeta dbinfo = new DatabaseMeta();
getInfo( dbinfo );
try {
if ( dbinfo.getAccessType() != DatabaseMeta.TYPE_ACCESS_PLUGIN ) {
DatabaseExplorerDialog ded = new DatabaseExplorerDialog( parent, SWT.NONE, dbinfo, databases, true );
ded.open();
} else {
MessageBox mb = new MessageBox( parent, SWT.OK | SWT.ICON_INFORMATION );
mb.setText( BaseMessages.getString( PKG, "DatabaseDialog.ExplorerNotImplemented.Title" ) );
mb.setMessage( BaseMessages.getString( PKG, "DatabaseDialog.ExplorerNotImplemented.Message" ) );
mb.open();
}
} catch ( Exception e ) {
new ErrorDialog( parent, BaseMessages.getString( PKG, "DatabaseDialog.ErrorParameters.title" ), BaseMessages
.getString( PKG, "DatabaseDialog.ErrorParameters.description" ), e );
}
}
private Shell getShell() {
Object obj = document.getRootElement().getManagedObject();
Shell parent;
if ( obj instanceof Shell ) {
parent = (Shell) obj;
} else {
parent = ( (Composite) obj ).getShell();
}
if ( parent == null ) {
throw new IllegalStateException( "Could not get Shell reference from Xul Dialog Tree." );
}
return parent;
}
public void showFeatureList() {
Shell parent = getShell();
DatabaseMeta dbinfo = new DatabaseMeta();
getInfo( dbinfo );
try {
java.util.List<RowMetaAndData> buffer = dbinfo.getFeatureSummary();
if ( buffer.size() > 0 ) {
RowMetaInterface rowMeta = buffer.get( 0 ).getRowMeta();
java.util.List<Object[]> rowData = new ArrayList<Object[]>();
for ( RowMetaAndData row : buffer ) {
rowData.add( row.getData() );
}
PreviewRowsDialog prd = new PreviewRowsDialog( parent, dbinfo, SWT.NONE, null, rowMeta, rowData );
prd.setTitleMessage( BaseMessages.getString( PKG, "DatabaseDialog.FeatureList.title" ), BaseMessages
.getString( PKG, "DatabaseDialog.FeatureList.title" ) );
prd.open();
}
} catch ( Exception e ) {
new ErrorDialog(
parent, BaseMessages.getString( PKG, "DatabaseDialog.FeatureListError.title" ), BaseMessages.getString(
PKG, "DatabaseDialog.FeatureListError.description" ), e );
}
}
@Override
protected void getControls() {
super.getControls();
XulTextbox[] boxes =
new XulTextbox[] {
hostNameBox, databaseNameBox, portNumberBox, userNameBox, passwordBox, customDriverClassBox,
customUrlBox, dataTablespaceBox, indexTablespaceBox, poolSizeBox, maxPoolSizeBox, languageBox,
systemNumberBox, clientBox };
for ( int i = 0; i < boxes.length; i++ ) {
XulTextbox xulTextbox = boxes[i];
if ( ( xulTextbox != null ) && ( xulTextbox instanceof ExtTextbox ) ) {
ExtTextbox ext = (ExtTextbox) xulTextbox;
ext.setVariableSpace( databaseMeta );
}
}
XulTree[] trees = new XulTree[] { poolParameterTree, clusterParameterTree, optionsParameterTree };
for ( int i = 0; i < trees.length; i++ ) {
XulTree xulTree = trees[i];
if ( xulTree != null ) {
xulTree.setData( databaseMeta );
}
}
}
public java.util.List<DatabaseMeta> getDatabases() {
return databases;
}
public void setDatabases( java.util.List<DatabaseMeta> databases ) {
this.databases = databases;
}
@Override
protected void showMessage( String message, boolean scroll ) {
Shell parent = getShell();
ShowMessageDialog msgDialog =
new ShowMessageDialog( parent, SWT.ICON_INFORMATION | SWT.OK, BaseMessages.getString(
PKG, "DatabaseDialog.DatabaseConnectionTest.title" ), message, scroll );
msgDialog.open();
}
@Override
protected void showMessage( DatabaseTestResults databaseTestResults ) {
Shell parent = getShell();
String message = databaseTestResults.getMessage();
boolean success = databaseTestResults.isSuccess();
String title = success ? BaseMessages.getString( PKG, "DatabaseDialog.DatabaseConnectionTestSuccess.title" )
: BaseMessages.getString( PKG, "DatabaseDialog.DatabaseConnectionTest.title" );
if ( success && message.contains( Const.CR ) ) {
message = message.substring( 0, message.indexOf( Const.CR ) )
+ Const.CR + message.substring( message.indexOf( Const.CR ) );
message = message.substring( 0, message.lastIndexOf( Const.CR ) );
}
ShowMessageDialog msgDialog = new ShowMessageDialog( parent, SWT.ICON_INFORMATION | SWT.OK,
title, message, message.length() > 300 );
msgDialog.setType( success ? Const.SHOW_MESSAGE_DIALOG_DB_TEST_SUCCESS
: Const.SHOW_MESSAGE_DIALOG_DB_TEST_DEFAULT );
msgDialog.open();
}
}

View File

@ -0,0 +1,147 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2018 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.util.ArrayList;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.database.DatabaseTestResults;
import org.pentaho.di.core.util.StringUtil;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.dialog.ShowMessageDialog;
/**
*
* Dialog that allows you to edit the settings of a database connection.
*
* @see <code>DatabaseInfo</code>
* @author Matt
* @since 18-05-2003
*
*/
public class DatabaseDialog extends XulDatabaseDialog {
private static Class<?> PKG = DatabaseDialog.class; // for i18n purposes, needed by Translator2!!
public DatabaseDialog( Shell parent ) {
super( parent );
}
public DatabaseDialog( Shell parent, DatabaseMeta databaseMeta ) {
super( parent );
setDatabaseMeta( databaseMeta );
}
public String open() {
return super.open();
}
public static final void checkPasswordVisible( Text wPassword ) {
String password = wPassword.getText();
java.util.List<String> list = new ArrayList<String>();
StringUtil.getUsedVariables( password, list, true );
// ONLY show the variable in clear text if there is ONE variable used
// Also, it has to be the only string in the field.
//
if ( list.size() != 1 ) {
wPassword.setEchoChar( '*' );
} else {
String variableName = null;
if ( ( password.startsWith( StringUtil.UNIX_OPEN ) && password.endsWith( StringUtil.UNIX_CLOSE ) ) ) {
// ${VAR}
// 012345
//
variableName =
password.substring( StringUtil.UNIX_OPEN.length(), password.length() - StringUtil.UNIX_CLOSE.length() );
}
if ( ( password.startsWith( StringUtil.WINDOWS_OPEN ) && password.endsWith( StringUtil.WINDOWS_CLOSE ) ) ) {
// %VAR%
// 01234
//
variableName =
password.substring( StringUtil.WINDOWS_OPEN.length(), password.length()
- StringUtil.WINDOWS_CLOSE.length() );
}
// If there is a variable name in there AND if it's defined in the system properties...
// Otherwise, we'll leave it alone.
//
if ( variableName != null && System.getProperty( variableName ) != null ) {
wPassword.setEchoChar( '\0' ); // Show it all...
} else {
wPassword.setEchoChar( '*' );
}
}
}
/**
* Test the database connection
*/
public static final void test( Shell shell, DatabaseMeta dbinfo ) {
String[] remarks = dbinfo.checkParameters();
if ( remarks.length == 0 ) {
// Get a "test" report from this database
DatabaseTestResults databaseTestResults = dbinfo.testConnectionSuccess();
String message = databaseTestResults.getMessage();
boolean success = databaseTestResults.isSuccess();
String title = success ? BaseMessages.getString( PKG, "DatabaseDialog.DatabaseConnectionTestSuccess.title" )
: BaseMessages.getString( PKG, "DatabaseDialog.DatabaseConnectionTest.title" );
if ( success && message.contains( Const.CR ) ) {
message = message.substring( 0, message.indexOf( Const.CR ) )
+ Const.CR + message.substring( message.indexOf( Const.CR ) );
message = message.substring( 0, message.lastIndexOf( Const.CR ) );
}
ShowMessageDialog msgDialog = new ShowMessageDialog( shell, SWT.ICON_INFORMATION | SWT.OK,
title, message, message.length() > 300 );
msgDialog.setType( success ? Const.SHOW_MESSAGE_DIALOG_DB_TEST_SUCCESS
: Const.SHOW_MESSAGE_DIALOG_DB_TEST_DEFAULT );
msgDialog.open();
} else {
String message = "";
for ( int i = 0; i < remarks.length; i++ ) {
message += " * " + remarks[i] + Const.CR;
}
MessageBox mb = new MessageBox( shell, SWT.OK | SWT.ICON_ERROR );
mb.setText( BaseMessages.getString( PKG, "DatabaseDialog.ErrorParameters2.title" ) );
mb.setMessage( BaseMessages.getString( PKG, "DatabaseDialog.ErrorParameters2.description", message ) );
mb.open();
}
}
public static void showDatabaseExistsDialog( Shell parent, DatabaseMeta databaseMeta ) {
String title = BaseMessages.getString( PKG, "DatabaseDialog.DatabaseNameExists.Title" );
String message = BaseMessages.getString( PKG, "DatabaseDialog.DatabaseNameExists", databaseMeta.getName() );
String okButton = BaseMessages.getString( PKG, "System.Button.OK" );
MessageDialog dialog =
new MessageDialog( parent, title, null, message, MessageDialog.ERROR, new String[] { okButton }, 0 );
dialog.open();
}
}

View File

@ -0,0 +1,54 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.util.List;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.database.DatabaseMeta;
/**
* This class has been adapted to use the XUL version of the DatabaseExplorerDialog instead. The old
* DatabaseExplorerDialog has been renamed to DatabaseExplorerDialogLegacy
*/
public class DatabaseExplorerDialog extends XulDatabaseExplorerDialog {
public DatabaseExplorerDialog( Shell parent, int style, DatabaseMeta conn, List<DatabaseMeta> databases ) {
super( parent, conn, databases, false );
}
public DatabaseExplorerDialog( Shell parent, int style, DatabaseMeta conn, List<DatabaseMeta> databases,
boolean aLook ) {
super( parent, conn, databases, aLook );
}
}
/*
* public class DatabaseExplorerDialog extends DatabaseExplorerDialogLegacy {
*
* public DatabaseExplorerDialog(Shell parent, int style, DatabaseMeta conn, List<DatabaseMeta> databases) {
* super(parent, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MAX | SWT.MIN, conn, databases, false); }
*
* public DatabaseExplorerDialog(Shell parent, int style, DatabaseMeta conn, List<DatabaseMeta> databases, boolean
* aLook) { super(parent, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MAX | SWT.MIN, conn, databases,
* aLook); } }
*/

View File

@ -0,0 +1,102 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.util.ArrayList;
import org.pentaho.ui.xul.util.AbstractModelNode;
public class DatabaseExplorerNode extends AbstractModelNode<DatabaseExplorerNode> {
private static final long serialVersionUID = -7409853507740739091L;
private String name;
private String schema;
private String image;
private boolean isTable;
private boolean isSchema;
// possibly a combination of schema and table
private String label;
public DatabaseExplorerNode() {
this.children = new ArrayList<DatabaseExplorerNode>();
}
public String getName() {
return this.name;
}
public void setName( String name ) {
this.name = name;
}
public String toString() {
return "Database Node: " + this.name;
}
public String getImage() {
return this.image;
}
public void setImage( String aImage ) {
this.image = aImage;
}
public void setIsSchema( boolean isSchema ) {
this.isSchema = isSchema;
}
public boolean isSchema() {
return isSchema;
}
public boolean isTable() {
return this.isTable;
}
public void setIsTable( boolean aIsTable ) {
this.isTable = aIsTable;
}
public void setSchema( String schema ) {
this.schema = schema;
}
public String getSchema() {
return schema;
}
public String getLabel() {
if ( label != null ) {
return label;
} else {
return name;
}
}
public void setLabel( String label ) {
this.label = label;
}
}

View File

@ -0,0 +1,98 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.lang.reflect.InvocationTargetException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.ProgressMonitorAdapter;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.database.DatabaseMetaInformation;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.dialog.ErrorDialog;
import org.pentaho.di.ui.spoon.Spoon;
/**
* Takes care of displaying a dialog that will handle the wait while we're finding out what tables, views etc we can
* reach in the database.
*
* @author Matt
* @since 07-apr-2005
*/
public class GetDatabaseInfoProgressDialog {
private static Class<?> PKG = GetDatabaseInfoProgressDialog.class; // for i18n purposes, needed by Translator2!!
private Shell shell;
private DatabaseMeta dbInfo;
/**
* Creates a new dialog that will handle the wait while we're finding out what tables, views etc we can reach in the
* database.
*/
public GetDatabaseInfoProgressDialog( Shell shell, DatabaseMeta dbInfo ) {
this.shell = shell;
this.dbInfo = dbInfo;
}
public DatabaseMetaInformation open() {
final DatabaseMetaInformation dmi = new DatabaseMetaInformation( dbInfo );
IRunnableWithProgress op = new IRunnableWithProgress() {
public void run( IProgressMonitor monitor ) throws InvocationTargetException, InterruptedException {
try {
dmi.getData( Spoon.loggingObject, new ProgressMonitorAdapter( monitor ) );
} catch ( Exception e ) {
throw new InvocationTargetException( e, BaseMessages.getString(
PKG, "GetDatabaseInfoProgressDialog.Error.GettingInfoTable", e.toString() ) );
}
}
};
try {
ProgressMonitorDialog pmd = new ProgressMonitorDialog( shell );
pmd.run( true, true, op );
} catch ( InvocationTargetException e ) {
showErrorDialog( e );
return null;
} catch ( InterruptedException e ) {
showErrorDialog( e );
return null;
}
return dmi;
}
/**
* Showing an error dialog
*
* @param e
*/
private void showErrorDialog( Exception e ) {
new ErrorDialog(
shell, BaseMessages.getString( PKG, "GetDatabaseInfoProgressDialog.Error.Title" ), BaseMessages.getString(
PKG, "GetDatabaseInfoProgressDialog.Error.Message" ), e );
}
}

View File

@ -0,0 +1,148 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.ProgressMonitorAdapter;
import org.pentaho.di.core.database.Database;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.core.row.RowMetaInterface;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.dialog.ErrorDialog;
import org.pentaho.di.ui.spoon.Spoon;
/**
* Takes care of displaying a dialog that will handle the wait while we're getting rows for a certain SQL query on a
* database.
*
* @author Matt
* @since 12-may-2005
*/
public class GetPreviewTableProgressDialog {
private static Class<?> PKG = GetPreviewTableProgressDialog.class; // for i18n purposes, needed by Translator2!!
private Shell shell;
private DatabaseMeta dbMeta;
private String tableName;
private int limit;
private List<Object[]> rows;
private RowMetaInterface rowMeta;
private Database db;
/**
* Creates a new dialog that will handle the wait while we're doing the hard work.
*/
public GetPreviewTableProgressDialog( Shell shell, DatabaseMeta dbInfo, String schemaName, String tableName,
int limit ) {
this.shell = shell;
this.dbMeta = dbInfo;
this.tableName = dbInfo.getQuotedSchemaTableCombination( schemaName, tableName );
this.limit = limit;
}
public List<Object[]> open() {
IRunnableWithProgress op = new IRunnableWithProgress() {
public void run( IProgressMonitor monitor ) throws InvocationTargetException, InterruptedException {
db = new Database( Spoon.loggingObject, dbMeta );
try {
db.connect();
if ( limit > 0 ) {
db.setQueryLimit( limit );
}
rows = db.getFirstRows( tableName, limit, new ProgressMonitorAdapter( monitor ) );
rowMeta = db.getReturnRowMeta();
} catch ( KettleException e ) {
throw new InvocationTargetException( e, "Couldn't find any rows because of an error :" + e.toString() );
} finally {
db.disconnect();
}
}
};
try {
final ProgressMonitorDialog pmd = new ProgressMonitorDialog( shell );
// Run something in the background to cancel active database queries, forecably if needed!
Runnable run = new Runnable() {
public void run() {
IProgressMonitor monitor = pmd.getProgressMonitor();
while ( pmd.getShell() == null || ( !pmd.getShell().isDisposed() && !monitor.isCanceled() ) ) {
try {
Thread.sleep( 100 );
} catch ( InterruptedException e ) {
// Ignore
}
}
if ( monitor.isCanceled() ) { // Disconnect and see what happens!
try {
db.cancelQuery();
} catch ( Exception e ) {
// Ignore
}
}
}
};
// Start the cancel tracker in the background!
new Thread( run ).start();
pmd.run( true, true, op );
} catch ( InvocationTargetException e ) {
showErrorDialog( e );
return null;
} catch ( InterruptedException e ) {
showErrorDialog( e );
return null;
}
return rows;
}
/**
* Showing an error dialog
*
* @param e
*/
private void showErrorDialog( Exception e ) {
new ErrorDialog(
shell, BaseMessages.getString( PKG, "GetPreviewTableProgressDialog.Error.Title" ), BaseMessages.getString(
PKG, "GetPreviewTableProgressDialog.Error.Message" ), e );
}
/**
* @return the rowMeta
*/
public RowMetaInterface getRowMeta() {
return rowMeta;
}
}

View File

@ -0,0 +1,133 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.lang.reflect.InvocationTargetException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.database.Database;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.row.RowMetaInterface;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.dialog.ErrorDialog;
import org.pentaho.di.ui.spoon.Spoon;
/**
* Takes care of displaying a dialog that will handle the wait while we're finding out which fields are output by a
* certain SQL query on a database.
*
* @author Matt
* @since 12-may-2005
*/
public class GetQueryFieldsProgressDialog {
private static Class<?> PKG = GetQueryFieldsProgressDialog.class; // for i18n purposes, needed by Translator2!!
private Shell shell;
private DatabaseMeta dbMeta;
private String sql;
private RowMetaInterface result;
private Database db;
/**
* Creates a new dialog that will handle the wait while we're finding out what tables, views etc we can reach in the
* database.
*/
public GetQueryFieldsProgressDialog( Shell shell, DatabaseMeta dbInfo, String sql ) {
this.shell = shell;
this.dbMeta = dbInfo;
this.sql = sql;
}
public RowMetaInterface open() {
IRunnableWithProgress op = new IRunnableWithProgress() {
public void run( IProgressMonitor monitor ) throws InvocationTargetException, InterruptedException {
db = new Database( Spoon.loggingObject, dbMeta );
try {
db.connect();
result = db.getQueryFields( sql, false );
if ( monitor.isCanceled() ) {
throw new InvocationTargetException( new Exception( "This operation was cancelled!" ) );
}
} catch ( Exception e ) {
throw new InvocationTargetException( e, "Problem encountered determining query fields: " + e.toString() );
} finally {
db.disconnect();
}
}
};
try {
final ProgressMonitorDialog pmd = new ProgressMonitorDialog( shell );
// Run something in the background to cancel active database queries, forecably if needed!
Runnable run = new Runnable() {
public void run() {
IProgressMonitor monitor = pmd.getProgressMonitor();
while ( pmd.getShell() == null || ( !pmd.getShell().isDisposed() && !monitor.isCanceled() ) ) {
try {
Thread.sleep( 250 );
} catch ( InterruptedException e ) {
// Ignore
}
}
if ( monitor.isCanceled() ) { // Disconnect and see what happens!
try {
db.cancelQuery();
} catch ( Exception e ) {
// Ignore
}
}
}
};
// Dump the cancel looker in the background!
new Thread( run ).start();
pmd.run( true, true, op );
} catch ( InvocationTargetException e ) {
showErrorDialog( e );
return null;
} catch ( InterruptedException e ) {
showErrorDialog( e );
return null;
}
return result;
}
/**
* Showing an error dialog
*
* @param e
*/
private void showErrorDialog( Exception e ) {
new ErrorDialog(
shell, BaseMessages.getString( PKG, "GetQueryFieldsProgressDialog.Error.Title" ), BaseMessages.getString(
PKG, "GetQueryFieldsProgressDialog.Error.Message" ), e );
}
}

View File

@ -0,0 +1,140 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.lang.reflect.InvocationTargetException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.RowMetaAndData;
import org.pentaho.di.core.database.Database;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.dialog.ErrorDialog;
import org.pentaho.di.ui.spoon.Spoon;
/**
* Takes care of displaying a dialog that will handle the wait while we're getting the number of rows for a certain
* table in a database.
*
* @author Matt
* @since 12-may-2005
*/
public class GetTableSizeProgressDialog {
private static Class<?> PKG = GetTableSizeProgressDialog.class; // for i18n purposes, needed by Translator2!!
private Shell shell;
private DatabaseMeta dbMeta;
private String tableName;
private Long size;
private Database db;
/**
* Creates a new dialog that will handle the wait while we're doing the hard work.
*/
public GetTableSizeProgressDialog( Shell shell, DatabaseMeta dbInfo, String tableName ) {
this( shell, dbInfo, tableName, null );
}
public GetTableSizeProgressDialog( Shell shell, DatabaseMeta dbInfo, String tableName, String schemaName ) {
this.shell = shell;
this.dbMeta = dbInfo;
this.tableName = dbInfo.getQuotedSchemaTableCombination( schemaName, tableName );
}
public Long open() {
IRunnableWithProgress op = new IRunnableWithProgress() {
public void run( IProgressMonitor monitor ) throws InvocationTargetException, InterruptedException {
db = new Database( Spoon.loggingObject, dbMeta );
try {
db.connect();
String sql = dbMeta.getDatabaseInterface().getSelectCountStatement( tableName );
RowMetaAndData row = db.getOneRow( sql );
size = row.getRowMeta().getInteger( row.getData(), 0 );
if ( monitor.isCanceled() ) {
throw new InvocationTargetException( new Exception( "This operation was cancelled!" ) );
}
} catch ( KettleException e ) {
throw new InvocationTargetException( e, "Couldn't get a result because of an error :" + e.toString() );
} finally {
db.disconnect();
}
}
};
try {
final ProgressMonitorDialog pmd = new ProgressMonitorDialog( shell );
// Run something in the background to cancel active database queries, forecably if needed!
Runnable run = new Runnable() {
public void run() {
IProgressMonitor monitor = pmd.getProgressMonitor();
while ( pmd.getShell() == null || ( !pmd.getShell().isDisposed() && !monitor.isCanceled() ) ) {
try {
Thread.sleep( 100 );
} catch ( InterruptedException e ) {
// Ignore
}
}
if ( monitor.isCanceled() ) { // Disconnect and see what happens!
try {
db.cancelQuery();
} catch ( Exception e ) {
// Ignore
}
}
}
};
// Start the cancel tracker in the background!
new Thread( run ).start();
pmd.run( true, true, op );
} catch ( InvocationTargetException e ) {
showErrorDialog( e );
return null;
} catch ( InterruptedException e ) {
showErrorDialog( e );
return null;
}
return size;
}
/**
* Showing an error dialog
*
* @param e
*/
private void showErrorDialog( Exception e ) {
new ErrorDialog( shell, BaseMessages.getString( PKG, "GetTableSizeProgressDialog.Error.Title" ), BaseMessages
.getString( PKG, "GetTableSizeProgressDialog.Error.Message" ), e );
}
}

View File

@ -0,0 +1,27 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
public interface IUiActionStatus {
public UiPostActionStatus getActionStatus();
}

View File

@ -0,0 +1,464 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.util.List;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.FocusAdapter;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.ShellAdapter;
import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.util.Utils;
import org.pentaho.di.core.DBCache;
import org.pentaho.di.core.Props;
import org.pentaho.di.core.database.Database;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.database.PartitionDatabaseMeta;
import org.pentaho.di.core.database.SqlScriptStatement;
import org.pentaho.di.core.exception.KettleDatabaseException;
import org.pentaho.di.core.logging.KettleLogStore;
import org.pentaho.di.core.logging.LogChannel;
import org.pentaho.di.core.logging.LogChannelInterface;
import org.pentaho.di.core.logging.LoggingObjectInterface;
import org.pentaho.di.core.logging.LoggingObjectType;
import org.pentaho.di.core.logging.SimpleLoggingObject;
import org.pentaho.di.core.row.RowMetaInterface;
import org.pentaho.di.core.variables.VariableSpace;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.PropsUI;
import org.pentaho.di.ui.core.dialog.EnterTextDialog;
import org.pentaho.di.ui.core.dialog.ErrorDialog;
import org.pentaho.di.ui.core.dialog.PreviewRowsDialog;
import org.pentaho.di.ui.core.gui.GUIResource;
import org.pentaho.di.ui.core.gui.WindowProperty;
import org.pentaho.di.ui.core.widget.StyledTextComp;
import org.pentaho.di.ui.trans.step.BaseStepDialog;
import org.pentaho.di.ui.trans.steps.tableinput.SQLValuesHighlight;
/**
* Dialog that allows the user to launch SQL statements towards the database.
*
* @author Matt
* @since 13-10-2003
*
*/
public class SQLEditor {
private static Class<?> PKG = SQLEditor.class; // for i18n purposes, needed by Translator2!!
public static final LoggingObjectInterface loggingObject = new SimpleLoggingObject(
"SQL Editor", LoggingObjectType.SPOON, null );
private PropsUI props;
private Label wlScript;
private StyledTextComp wScript;
private FormData fdlScript, fdScript;
private Label wlPosition;
private FormData fdlPosition;
private Button wExec, wClear, wCancel;
private Listener lsExec, lsClear, lsCancel;
private String input;
private DatabaseMeta connection;
private Shell shell;
private DBCache dbcache;
private LogChannelInterface log;
private int style = SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MAX | SWT.MIN;
private Shell parentShell;
private VariableSpace variables;
private List<SqlScriptStatement> statements;
private SQLValuesHighlight highlight;
public SQLEditor( Shell parent, int style, DatabaseMeta ci, DBCache dbc, String sql ) {
this( null, parent, style, ci, dbc, sql );
}
public SQLEditor( VariableSpace space, Shell parent, int style, DatabaseMeta ci, DBCache dbc, String sql ) {
props = PropsUI.getInstance();
log = new LogChannel( ci );
input = sql;
connection = ci;
dbcache = dbc;
this.parentShell = parent;
this.style = ( style != SWT.None ) ? style : this.style;
this.variables = space;
}
public void open() {
shell = new Shell( parentShell, style );
props.setLook( shell );
shell.setImage( GUIResource.getInstance().getImageConnection() );
FormLayout formLayout = new FormLayout();
formLayout.marginWidth = Const.FORM_MARGIN;
formLayout.marginHeight = Const.FORM_MARGIN;
shell.setLayout( formLayout );
shell.setText( BaseMessages.getString( PKG, "SQLEditor.Title" ) );
int margin = Const.MARGIN;
// Script line
wlScript = new Label( shell, SWT.NONE );
wlScript.setText( BaseMessages.getString( PKG, "SQLEditor.Editor.Label" ) );
props.setLook( wlScript );
fdlScript = new FormData();
fdlScript.left = new FormAttachment( 0, 0 );
fdlScript.top = new FormAttachment( 0, 0 );
wlScript.setLayoutData( fdlScript );
wScript =
new StyledTextComp(
this.variables, shell, SWT.MULTI | SWT.LEFT | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL, "" );
wScript.setText( "" );
props.setLook( wScript, Props.WIDGET_STYLE_FIXED );
fdScript = new FormData();
fdScript.left = new FormAttachment( 0, 0 );
fdScript.top = new FormAttachment( wlScript, margin );
fdScript.right = new FormAttachment( 100, -10 );
fdScript.bottom = new FormAttachment( 100, -70 );
wScript.setLayoutData( fdScript );
wScript.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent arg0 ) {
setPosition();
}
} );
wScript.addKeyListener( new KeyAdapter() {
public void keyPressed( KeyEvent e ) {
setPosition();
}
public void keyReleased( KeyEvent e ) {
setPosition();
}
} );
wScript.addFocusListener( new FocusAdapter() {
public void focusGained( FocusEvent e ) {
setPosition();
}
public void focusLost( FocusEvent e ) {
setPosition();
}
} );
wScript.addMouseListener( new MouseAdapter() {
public void mouseDoubleClick( MouseEvent e ) {
setPosition();
}
public void mouseDown( MouseEvent e ) {
setPosition();
}
public void mouseUp( MouseEvent e ) {
setPosition();
}
} );
// SQL Higlighting
highlight = new SQLValuesHighlight();
highlight.addKeyWords( connection.getReservedWords() );
wScript.addLineStyleListener( highlight );
wlPosition = new Label( shell, SWT.NONE );
wlPosition.setText( BaseMessages.getString( PKG, "SQLEditor.LineNr.Label", "0" ) );
props.setLook( wlPosition );
fdlPosition = new FormData();
fdlPosition.left = new FormAttachment( 0, 0 );
fdlPosition.top = new FormAttachment( wScript, margin );
fdlPosition.right = new FormAttachment( 100, 0 );
wlPosition.setLayoutData( fdlPosition );
wExec = new Button( shell, SWT.PUSH );
wExec.setText( BaseMessages.getString( PKG, "SQLEditor.Button.Execute" ) );
wClear = new Button( shell, SWT.PUSH );
wClear.setText( BaseMessages.getString( PKG, "SQLEditor.Button.ClearCache" ) );
wCancel = new Button( shell, SWT.PUSH );
wCancel.setText( BaseMessages.getString( PKG, "System.Button.Close" ) );
wClear.setToolTipText( BaseMessages.getString( PKG, "SQLEditor.Button.ClearCache.Tooltip" ) );
BaseStepDialog.positionBottomButtons( shell, new Button[] { wExec, wClear, wCancel }, margin, null );
// Add listeners
lsCancel = new Listener() {
public void handleEvent( Event e ) {
cancel();
}
};
lsClear = new Listener() {
public void handleEvent( Event e ) {
clearCache();
}
};
lsExec = new Listener() {
public void handleEvent( Event e ) {
try {
exec();
} catch ( Exception ge ) {
// Ignore errors
}
}
};
wCancel.addListener( SWT.Selection, lsCancel );
wClear.addListener( SWT.Selection, lsClear );
wExec.addListener( SWT.Selection, lsExec );
// Detect X or ALT-F4 or something that kills this window...
shell.addShellListener( new ShellAdapter() {
public void shellClosed( ShellEvent e ) {
cancel();
}
} );
BaseStepDialog.setSize( shell );
getData();
shell.open();
}
public void setPosition() {
String scr = wScript.getText();
int linenr = wScript.getLineAtOffset( wScript.getCaretOffset() ) + 1;
int posnr = wScript.getCaretOffset();
// Go back from position to last CR: how many positions?
int colnr = 0;
while ( posnr > 0 && scr.charAt( posnr - 1 ) != '\n' && scr.charAt( posnr - 1 ) != '\r' ) {
posnr--;
colnr++;
}
wlPosition.setText( BaseMessages.getString( PKG, "SQLEditor.Position.Label", "" + linenr, "" + colnr ) );
}
private void clearCache() {
MessageBox mb = new MessageBox( shell, SWT.ICON_QUESTION | SWT.NO | SWT.YES | SWT.CANCEL );
mb.setMessage( BaseMessages.getString( PKG, "SQLEditor.ClearWholeCache.Message", connection.getName() ) );
mb.setText( BaseMessages.getString( PKG, "SQLEditor.ClearWholeCache.Title" ) );
int answer = mb.open();
switch ( answer ) {
case SWT.NO:
DBCache.getInstance().clear( connection.getName() );
mb = new MessageBox( shell, SWT.ICON_INFORMATION | SWT.OK );
mb.setMessage( BaseMessages.getString( PKG, "SQLEditor.ConnectionCacheCleared.Message", connection
.getName() ) );
mb.setText( BaseMessages.getString( PKG, "SQLEditor.ConnectionCacheCleared.Title" ) );
mb.open();
break;
case SWT.YES:
DBCache.getInstance().clear( null );
mb = new MessageBox( shell, SWT.ICON_INFORMATION | SWT.OK );
mb.setMessage( BaseMessages.getString( PKG, "SQLEditor.WholeCacheCleared.Message" ) );
mb.setText( BaseMessages.getString( PKG, "SQLEditor.WholeCacheCleared.Title" ) );
mb.open();
break;
case SWT.CANCEL:
break;
default:
break;
}
}
public void dispose() {
props.setScreen( new WindowProperty( shell ) );
shell.dispose();
}
/**
* Copy information from the meta-data input to the dialog fields.
*/
public void getData() {
if ( input != null ) {
wScript.setText( input );
// if (connection!= null) wConnection.setText( connection );
}
}
private void cancel() {
dispose();
}
private void exec() {
DatabaseMeta ci = connection;
if ( ci == null ) {
return;
}
StringBuilder message = new StringBuilder();
Database db = new Database( loggingObject, ci );
boolean first = true;
PartitionDatabaseMeta[] partitioningInformation = ci.getPartitioningInformation();
for ( int partitionNr = 0; first
|| ( partitioningInformation != null && partitionNr < partitioningInformation.length ); partitionNr++ ) {
first = false;
String partitionId = null;
if ( partitioningInformation != null && partitioningInformation.length > 0 ) {
partitionId = partitioningInformation[partitionNr].getPartitionId();
}
try {
db.connect( partitionId );
String sqlScript =
Utils.isEmpty( wScript.getSelectionText() ) ? wScript.getText() : wScript.getSelectionText();
// Multiple statements in the script need to be split into individual
// executable statements
statements = ci.getDatabaseInterface().getSqlScriptStatements( sqlScript + Const.CR );
int nrstats = 0;
for ( SqlScriptStatement sql : statements ) {
if ( sql.isQuery() ) {
// A Query
log.logDetailed( "launch SELECT statement: " + Const.CR + sql );
nrstats++;
try {
List<Object[]> rows = db.getRows( sql.getStatement(), 1000 );
RowMetaInterface rowMeta = db.getReturnRowMeta();
if ( rows.size() > 0 ) {
PreviewRowsDialog prd =
new PreviewRowsDialog( shell, ci, SWT.NONE, BaseMessages.getString(
PKG, "SQLEditor.ResultRows.Title", Integer.toString( nrstats ) ), rowMeta, rows );
prd.open();
} else {
MessageBox mb = new MessageBox( shell, SWT.ICON_INFORMATION | SWT.OK );
mb.setMessage( BaseMessages.getString( PKG, "SQLEditor.NoRows.Message", sql ) );
mb.setText( BaseMessages.getString( PKG, "SQLEditor.NoRows.Title" ) );
mb.open();
}
} catch ( KettleDatabaseException dbe ) {
new ErrorDialog( shell, BaseMessages.getString( PKG, "SQLEditor.ErrorExecSQL.Title" ), BaseMessages
.getString( PKG, "SQLEditor.ErrorExecSQL.Message", sql ), dbe );
}
} else {
log.logDetailed( "launch DDL statement: " + Const.CR + sql );
// A DDL statement
nrstats++;
int startLogLine = KettleLogStore.getLastBufferLineNr();
try {
log.logDetailed( "Executing SQL: " + Const.CR + sql );
db.execStatement( sql.getStatement() );
message.append( BaseMessages.getString( PKG, "SQLEditor.Log.SQLExecuted", sql ) );
message.append( Const.CR );
// Clear the database cache, in case we're using one...
if ( dbcache != null ) {
dbcache.clear( ci.getName() );
}
// mark the statement in green in the dialog...
//
sql.setOk( true );
} catch ( Exception dbe ) {
sql.setOk( false );
String error = BaseMessages.getString( PKG, "SQLEditor.Log.SQLExecError", sql, dbe.toString() );
message.append( error ).append( Const.CR );
ErrorDialog dialog =
new ErrorDialog(
shell, BaseMessages.getString( PKG, "SQLEditor.ErrorExecSQL.Title" ), error, dbe, true );
if ( dialog.isCancelled() ) {
break;
}
} finally {
int endLogLine = KettleLogStore.getLastBufferLineNr();
sql.setLoggingText( KettleLogStore.getAppender().getLogBufferFromTo(
db.getLogChannelId(), true, startLogLine, endLogLine ).toString() );
sql.setComplete( true );
refreshExecutionResults();
}
}
}
message.append( BaseMessages.getString( PKG, "SQLEditor.Log.StatsExecuted", Integer.toString( nrstats ) ) );
if ( partitionId != null ) {
message.append( BaseMessages.getString( PKG, "SQLEditor.Log.OnPartition", partitionId ) );
}
message.append( Const.CR );
} catch ( KettleDatabaseException dbe ) {
MessageBox mb = new MessageBox( shell, SWT.OK | SWT.ICON_ERROR );
String error =
BaseMessages.getString( PKG, "SQLEditor.Error.CouldNotConnect.Message", ( connection == null
? "" : connection.getName() ), dbe.getMessage() );
message.append( error ).append( Const.CR );
mb.setMessage( error );
mb.setText( BaseMessages.getString( PKG, "SQLEditor.Error.CouldNotConnect.Title" ) );
mb.open();
} finally {
db.disconnect();
refreshExecutionResults();
}
}
EnterTextDialog dialog =
new EnterTextDialog( shell, BaseMessages.getString( PKG, "SQLEditor.Result.Title" ), BaseMessages
.getString( PKG, "SQLEditor.Result.Message" ), message.toString(), true );
dialog.open();
}
/**
* During or after an execution we will mark regions of the SQL editor dialog in green or red.
*/
protected void refreshExecutionResults() {
highlight.setScriptStatements( statements );
wScript.redraw();
}
}

View File

@ -0,0 +1,128 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import org.pentaho.ui.xul.XulEventSourceAdapter;
public class StepFieldNode extends XulEventSourceAdapter {
private String fieldName;
private String type;
private String length;
private String precision;
private String origin;
private String storageType;
private String conversionMask;
private String decimalSymbol;
private String groupingSymbol;
private String trimType;
private String comments;
public String getFieldName() {
return this.fieldName;
}
public void setFieldName( String aFieldName ) {
this.fieldName = aFieldName;
}
public String getType() {
return this.type;
}
public void setType( String aType ) {
this.type = aType;
}
public String getLength() {
return this.length;
}
public void setLength( String aLength ) {
this.length = aLength;
}
public String getPrecision() {
return this.precision;
}
public void setPrecision( String aPrecision ) {
this.precision = aPrecision;
}
public String getOrigin() {
return this.origin;
}
public void setOrigin( String aOrigin ) {
this.origin = aOrigin;
}
public String getStorageType() {
return this.storageType;
}
public void setStorageType( String aStorageType ) {
this.storageType = aStorageType;
}
public String getConversionMask() {
return this.conversionMask;
}
public void setConversionMask( String aConversionMask ) {
this.conversionMask = aConversionMask;
}
public String getDecimalSymbol() {
return this.decimalSymbol;
}
public void setDecimalSymbol( String aDecimalSymbol ) {
this.decimalSymbol = aDecimalSymbol;
}
public String getGroupingSymbol() {
return this.groupingSymbol;
}
public void setGroupingSymbol( String aGroupingSymbol ) {
this.groupingSymbol = aGroupingSymbol;
}
public String getTrimType() {
return this.trimType;
}
public void setTrimType( String aTrimType ) {
this.trimType = aTrimType;
}
public String getComments() {
return this.comments;
}
public void setComments( String aComments ) {
this.comments = aComments;
}
}

View File

@ -0,0 +1,27 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
public enum UiPostActionStatus {
OK, ERROR_DIALOG_SHOWN, ERROR, NONE;
}

View File

@ -0,0 +1,251 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2018 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.logging.LogChannel;
import org.pentaho.di.core.logging.LogChannelInterface;
import org.pentaho.di.core.util.Utils;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.i18n.GlobalMessages;
import org.pentaho.di.repository.ObjectId;
import org.pentaho.di.ui.core.dialog.ErrorDialog;
import org.pentaho.di.ui.xul.KettleXulLoader;
import org.pentaho.ui.database.DatabaseConnectionDialog;
import org.pentaho.ui.xul.XulComponent;
import org.pentaho.ui.xul.XulDomContainer;
import org.pentaho.ui.xul.XulException;
import org.pentaho.ui.xul.containers.XulDialog;
import org.pentaho.ui.xul.containers.XulTree;
public class XulDatabaseDialog {
private static Class<?> PKG = XulDatabaseDialog.class; // for i18n purposes, needed by Translator2!!
private DatabaseMeta databaseMeta;
/**
* The original objectId of the databaseMeta before it was edited, possibly null.
*/
private ObjectId databaseMetaObjectId;
protected Shell shell;
private Shell parentShell;
private String databaseName;
private java.util.List<DatabaseMeta> databases;
private boolean modalDialog;
DataOverrideHandler dataHandler = null;
private LogChannelInterface log;
private static final String EVENT_ID = "dataHandler";
private static final String MESSAGES = "org.pentaho.di.ui.core.database.dialog.messages.messages";
private static final String DIALOG_FRAGMENT_FILE = "/feature_override.xul";
private static final String FRAGMENT_ID = "test-button-box";
private static final String EXTENDED_WIDGET_CLASSNAME = "org.pentaho.di.ui.core.database.dialog.tags.ExtTextbox";
private static final String PMD_WIDGET_CLASSNAME = "org.pentaho.ui.xul.swt.tags.SwtTextbox";
private static final String EXTENDED_WIDGET_ID = "VARIABLETEXTBOX";
private DatabaseConnectionDialog databaseDialogInstance;
private XulDialog xulDialogComponent;
public XulDatabaseDialog( Shell parent ) {
parentShell = parent;
databases = null;
log = new LogChannel( "XulDatabaseDialog" );
}
/**
* Opens the XUL database dialog
*
* @return databaseName (or NULL on error or cancel) TODO: Fix deprecation warning in v3.2 by using the new dialog
*/
public String open() {
if ( databaseDialogInstance == null ) {
createDialog();
}
try {
// PDI-5088 clear previous options selections since we are re-using the dialog
XulTree tree =
(XulTree) xulDialogComponent.getDocument().getRootElement().getElementById( "options-parameter-tree" );
tree.getRootChildren().removeAll();
dataHandler.setData( databaseMeta );
xulDialogComponent.show(); // Attention: onload: loadConnectionData() is called here the second time, see above
// for first time
// caught with a HACK in DataHandler.loadConnectionData()
databaseMeta = (DatabaseMeta) dataHandler.getData();
// keep the original id
if ( databaseMeta != null ) {
databaseMeta.setObjectId( databaseMetaObjectId );
databaseName = Utils.isEmpty( databaseMeta.getName() ) ? null : databaseMeta.getName();
} else {
databaseName = null;
}
} catch ( Exception e ) {
new ErrorDialog( parentShell, BaseMessages.getString( PKG, "XulDatabaseDialog.Error.Title" ), BaseMessages
.getString( PKG, "XulDatabaseDialog.Error.Dialog" ), e );
return null;
}
return databaseName;
}
@SuppressWarnings( "deprecation" )
private void createDialog() {
XulDomContainer container = null;
try {
databaseDialogInstance = new DatabaseConnectionDialog();
if ( ( (Shell) this.parentShell ).getText().contains( "Metadata Editor" ) ) {
databaseDialogInstance.registerClass( EXTENDED_WIDGET_ID, PMD_WIDGET_CLASSNAME );
} else {
databaseDialogInstance.registerClass( EXTENDED_WIDGET_ID, EXTENDED_WIDGET_CLASSNAME );
}
/*
* Attention: onload: loadConnectionData() is called here the first time, see below for second time
*/
container = databaseDialogInstance.getSwtInstance( new KettleXulLoader(), parentShell );
container.addEventHandler( EVENT_ID, DataOverrideHandler.class.getName() );
dataHandler = (DataOverrideHandler) container.getEventHandler( EVENT_ID );
if ( databaseMeta != null ) {
dataHandler.setData( databaseMeta );
}
dataHandler.setDatabases( databases );
dataHandler.getControls();
} catch ( XulException e ) {
new ErrorDialog( parentShell, BaseMessages.getString( PKG, "XulDatabaseDialog.Error.Title" ), BaseMessages
.getString( PKG, "XulDatabaseDialog.Error.HandleXul" ), e );
return;
}
try {
// Inject the button panel that contains the "Feature List" and "Explore" buttons
XulComponent boxElement = container.getDocumentRoot().getElementById( FRAGMENT_ID );
XulComponent parentElement = boxElement.getParent();
ResourceBundle res = null;
try {
res = GlobalMessages.getBundle( MESSAGES );
} catch ( MissingResourceException e ) {
log.logError(
BaseMessages.getString( PKG, "XulDatabaseDialog.Error.ResourcesNotFound.Title" ), e.getMessage(), e );
}
XulDomContainer fragmentContainer = null;
String pkg = getClass().getPackage().getName().replace( '.', '/' );
// Kludge: paths of execution do not account for a null resourcebundle gracefully, need
// to check for it here.
if ( res != null ) {
fragmentContainer = container.loadFragment( pkg.concat( DIALOG_FRAGMENT_FILE ), res );
} else {
fragmentContainer = container.loadFragment( pkg.concat( DIALOG_FRAGMENT_FILE ) );
}
XulComponent newBox = fragmentContainer.getDocumentRoot().getFirstChild();
parentElement.replaceChild( boxElement, newBox );
} catch ( Exception e ) {
new ErrorDialog( parentShell, BaseMessages.getString( PKG, "XulDatabaseDialog.Error.Title" ), BaseMessages
.getString( PKG, "XulDatabaseDialog.Error.HandleXul" ), e );
return;
}
try {
xulDialogComponent = (XulDialog) container.getDocumentRoot().getRootElement();
parentShell.addDisposeListener( new DisposeListener() {
public void widgetDisposed( DisposeEvent arg0 ) {
xulDialogComponent.hide();
}
} );
} catch ( Exception e ) {
new ErrorDialog( parentShell, BaseMessages.getString( PKG, "XulDatabaseDialog.Error.Title" ), BaseMessages
.getString( PKG, "XulDatabaseDialog.Error.Dialog" ), e );
return;
}
}
public void setDatabaseMeta( DatabaseMeta dbMeta ) {
databaseMeta = dbMeta;
if ( dbMeta != null ) {
databaseMetaObjectId = databaseMeta.getObjectId();
databaseName = databaseMeta.getDisplayName();
}
}
public DatabaseMeta getDatabaseMeta() {
return databaseMeta;
}
public void setDatabases( java.util.List<DatabaseMeta> databases ) {
this.databases = databases;
}
/**
* @return the modalDialog
*/
public boolean isModalDialog() {
return modalDialog;
}
/**
* @param modalDialog
* the modalDialog to set
*/
public void setModalDialog( boolean modalDialog ) {
this.modalDialog = modalDialog;
}
}

View File

@ -0,0 +1,699 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.DBCache;
import org.pentaho.di.core.database.Database;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.database.DatabaseMetaInformation;
import org.pentaho.di.core.database.Schema;
import org.pentaho.di.core.exception.KettleDatabaseException;
import org.pentaho.di.core.logging.LogChannel;
import org.pentaho.di.core.logging.LoggingObject;
import org.pentaho.di.core.row.RowMetaInterface;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;
import org.pentaho.di.trans.TransProfileFactory;
import org.pentaho.di.ui.core.dialog.EnterSelectionDialog;
import org.pentaho.di.ui.core.dialog.EnterTextDialog;
import org.pentaho.di.ui.core.dialog.ErrorDialog;
import org.pentaho.di.ui.core.dialog.PreviewRowsDialog;
import org.pentaho.di.ui.core.dialog.StepFieldsDialog;
import org.pentaho.di.ui.trans.dialog.TransPreviewProgressDialog;
import org.pentaho.ui.xul.XulComponent;
import org.pentaho.ui.xul.XulException;
import org.pentaho.ui.xul.binding.Binding;
import org.pentaho.ui.xul.binding.Binding.Type;
import org.pentaho.ui.xul.binding.BindingConvertor;
import org.pentaho.ui.xul.binding.BindingFactory;
import org.pentaho.ui.xul.binding.DefaultBindingFactory;
import org.pentaho.ui.xul.components.XulButton;
import org.pentaho.ui.xul.components.XulMessageBox;
import org.pentaho.ui.xul.components.XulPromptBox;
import org.pentaho.ui.xul.containers.XulTree;
import org.pentaho.ui.xul.impl.AbstractXulEventHandler;
import org.pentaho.ui.xul.swt.tags.SwtButton;
import org.pentaho.ui.xul.swt.tags.SwtDialog;
import org.pentaho.ui.xul.util.XulDialogCallback;
public class XulDatabaseExplorerController extends AbstractXulEventHandler implements IUiActionStatus {
private static final Class<?> PKG = XulDatabaseExplorerController.class;
private XulDatabaseExplorerModel model;
private Binding databaseTreeBinding;
private Binding selectedTableBinding;
// private Binding selectedSchemaBinding;
private XulTree databaseTree;
private XulButton expandCollapseButton;
private BindingFactory bf;
protected Shell shell;
private SwtDialog dbExplorerDialog;
private DBCache dbcache;
private List<DatabaseMeta> databases;
private boolean isExpanded;
private boolean isJustLook;
private UiPostActionStatus status = UiPostActionStatus.NONE;
private static final String DATABASE_IMAGE = "ui/images/folder_connection.svg";
private static final String FOLDER_IMAGE = "ui/images/BOL.svg";
private static final String SCHEMA_IMAGE = "ui/images/schema.svg";
private static final String TABLE_IMAGE = "ui/images/table.svg";
private static final String EXPAND_ALL_IMAGE = "ui/images/ExpandAll.svg";
private static final String COLLAPSE_ALL_IMAGE = "ui/images/CollapseAll.svg";
private static final String STRING_SCHEMAS = BaseMessages
.getString( PKG, "DatabaseExplorerDialog.Schemas.Label" );
private static final String STRING_TABLES = BaseMessages.getString( PKG, "DatabaseExplorerDialog.Tables.Label" );
private static final String STRING_VIEWS = BaseMessages.getString( PKG, "DatabaseExplorerDialog.Views.Label" );
private static final String STRING_SYNONYMS = BaseMessages.getString(
PKG, "DatabaseExplorerDialog.Synonyms.Label" );
public XulDatabaseExplorerController( Shell shell, DatabaseMeta databaseMeta, List<DatabaseMeta> databases,
boolean aLook ) {
this.model = new XulDatabaseExplorerModel( databaseMeta );
this.shell = shell;
this.bf = new DefaultBindingFactory();
this.databases = databases;
this.dbcache = DBCache.getInstance();
this.isJustLook = aLook;
}
public void init() {
SwtButton theAcceptButton = (SwtButton) this.document.getElementById( "databaseExplorerDialog_accept" );
SwtButton theCancelButton = (SwtButton) this.document.getElementById( "databaseExplorerDialog_cancel" );
if ( this.isJustLook ) {
theAcceptButton.setVisible( false );
theCancelButton.setLabel( BaseMessages.getString( getClass(), "DatabaseExplorer.Button.Ok" ) );
theAcceptButton.setDisabled( false );
} else {
theAcceptButton.setLabel( BaseMessages.getString( getClass(), "DatabaseExplorer.Button.Ok" ) );
theCancelButton.setLabel( BaseMessages.getString( getClass(), "DatabaseExplorer.Button.Cancel" ) );
theAcceptButton.setDisabled( true );
}
this.dbExplorerDialog = (SwtDialog) this.document.getElementById( "databaseExplorerDialog" );
createDatabaseNodes();
if ( this.status != UiPostActionStatus.OK ) {
// something goes dramatically wrong!
return;
}
this.bf.setDocument( super.document );
this.bf.setBindingType( Type.ONE_WAY );
this.expandCollapseButton = (XulButton) document.getElementById( "expandCollapseButton" );
this.databaseTree = (XulTree) document.getElementById( "databaseTree" );
this.databaseTreeBinding = bf.createBinding( this.model, "database", this.databaseTree, "elements" );
bf.createBinding(
model, "selectedNode", theAcceptButton, "disabled", new BindingConvertor<DatabaseExplorerNode, Boolean>() {
@Override
public Boolean sourceToTarget( DatabaseExplorerNode arg0 ) {
return ( !isJustLook && ( arg0 == null || !arg0.isTable() ) );
}
@Override
public DatabaseExplorerNode targetToSource( Boolean arg0 ) {
// TODO Auto-generated method stub
return null;
}
} );
bf.setBindingType( Binding.Type.BI_DIRECTIONAL );
this.bf.createBinding(
this.databaseTree, "selectedItems", this.model, "selectedNode",
new BindingConvertor<List<DatabaseExplorerNode>, DatabaseExplorerNode>() {
@Override
public DatabaseExplorerNode sourceToTarget( List<DatabaseExplorerNode> arg0 ) {
if ( arg0 == null || arg0.size() == 0 ) {
return null;
}
return arg0.get( 0 );
}
@Override
public List<DatabaseExplorerNode> targetToSource( DatabaseExplorerNode arg0 ) {
return Collections.singletonList( arg0 );
}
} );
BindingConvertor<DatabaseExplorerNode, Boolean> isDisabledConvertor =
new BindingConvertor<DatabaseExplorerNode, Boolean>() {
public Boolean sourceToTarget( DatabaseExplorerNode value ) {
return !( value != null && value.isTable() );
}
public DatabaseExplorerNode targetToSource( Boolean value ) {
return null;
}
};
bf.setBindingType( Binding.Type.ONE_WAY );
this.bf.createBinding( this.databaseTree, "selectedItem", "buttonMenuPopUp", "disabled", isDisabledConvertor );
this.bf.createBinding(
this.databaseTree, "selectedItem", "buttonMenuPopUpImg", "disabled", isDisabledConvertor );
this.bf.createBinding( this.databaseTree, "selectedItem", "action_popup", "disabled", isDisabledConvertor );
fireBindings();
}
public void setSelectedSchemaAndTable( String aSchema, String aTable ) throws KettleDatabaseException {
this.model.setSelectedNode( model.findBy( aSchema, aTable ) );
}
public String getSelectedTable() {
return model.getTable();
}
public DatabaseMeta getDatabaseMeta() {
return this.model.getDatabaseMeta();
}
public String getSelectedSchema() {
return model.getSchema();
}
public void accept() {
if ( this.model.getTable() != null ) {
this.dbExplorerDialog.setVisible( false );
}
}
public void cancel() {
this.model.setSelectedNode( null );
this.dbExplorerDialog.setVisible( false );
}
public void truncate() {
if ( this.model.getTable() == null ) {
return;
}
DatabaseMeta dm = this.model.getDatabaseMeta();
String message = dm.getTruncateTableStatement( this.model.getSchema(), this.model.getTable() );
if ( message == null ) {
message = "Truncating tables is not supported by " + dm.getDatabaseInterface().getPluginName();
}
SQLEditor theSqlEditor =
new SQLEditor( this.getDatabaseMeta(), this.dbExplorerDialog.getShell(), SWT.NONE, dm, this.dbcache, "-- "
+ message );
theSqlEditor.open();
}
public void viewSql() {
if ( this.model.getTable() == null ) {
return;
}
SQLEditor theSqlEditor =
new SQLEditor( this.getDatabaseMeta(), this.dbExplorerDialog.getShell(), SWT.NONE, this.model
.getDatabaseMeta(), this.dbcache, "SELECT * FROM " + getSchemaAndTable( this.model ) );
theSqlEditor.open();
}
public void showLayout() {
DatabaseMeta databaseMeta = model.getDatabaseMeta();
String schemaTable = databaseMeta.getQuotedSchemaTableCombination( model.getSchema(), model.getTable() );
String theSql = databaseMeta.getSQLQueryFields( schemaTable );
GetQueryFieldsProgressDialog theProgressDialog =
new GetQueryFieldsProgressDialog( this.shell, databaseMeta, theSql );
RowMetaInterface fields = theProgressDialog.open();
StepFieldsDialog stepFieldsDialog = new StepFieldsDialog( shell, databaseMeta, SWT.NONE, schemaTable, fields );
stepFieldsDialog.setShellText( BaseMessages.getString( PKG, "DatabaseExplorerDialog.TableLayout.ShellText" ) );
stepFieldsDialog
.setOriginText( BaseMessages.getString( PKG, "DatabaseExplorerDialog.TableLayout.OriginText" ) );
stepFieldsDialog.setShowEditButton( false );
stepFieldsDialog.open();
}
public void displayRowCount() {
if ( this.model.getTable() == null ) {
return;
}
try {
GetTableSizeProgressDialog pd =
new GetTableSizeProgressDialog(
this.dbExplorerDialog.getShell(), this.model.getDatabaseMeta(), this.model.getTable(), model
.getSchema() );
Long theCount = pd.open();
if ( theCount != null ) {
XulMessageBox theMessageBox = (XulMessageBox) document.createElement( "messagebox" );
theMessageBox.setModalParent( this.dbExplorerDialog.getShell() );
theMessageBox.setTitle( BaseMessages.getString( PKG, "DatabaseExplorerDialog.TableSize.Title" ) );
theMessageBox.setMessage( BaseMessages.getString(
PKG, "DatabaseExplorerDialog.TableSize.Message", this.model.getTable(), theCount.toString() ) );
theMessageBox.open();
}
} catch ( XulException e ) {
LogChannel.GENERAL.logError( "Error displaying row count", e );
}
}
private void fireBindings() {
try {
this.databaseTreeBinding.fireSourceChanged();
if ( this.getSelectedTable() != null ) {
this.selectedTableBinding.fireSourceChanged();
}
// if (this.getSelectedSchema() != null) {
// this.selectedSchemaBinding.fireSourceChanged();
// }
} catch ( Exception e ) {
LogChannel.GENERAL.logError( "Error firing bindings in database explorer", e );
}
}
public String getName() {
return "dbexplorer";
}
public void preview( boolean askLimit ) {
if ( model.getTable() == null ) {
return;
}
try {
PromptCallback theCallback = new PromptCallback();
@SuppressWarnings( "unused" )
boolean execute = true;
int limit = 100;
if ( askLimit ) {
XulPromptBox thePromptBox = (XulPromptBox) this.document.createElement( "promptbox" );
thePromptBox.setModalParent( this.dbExplorerDialog.getShell() );
thePromptBox.setTitle( "Enter Max Rows" );
thePromptBox.setMessage( "Max Rows:" );
thePromptBox.addDialogCallback( theCallback );
thePromptBox.open();
execute = theCallback.getLimit() != -1;
limit = theCallback.getLimit();
}
// if (execute) {
// XulPreviewRowsDialog thePreviewRowsDialog = new XulPreviewRowsDialog(this.shell, SWT.NONE,
// this.model.getDatabaseMeta(), this.model.getTable(), theCallback.getLimit());
// thePreviewRowsDialog.open();
// }
GetPreviewTableProgressDialog pd =
new GetPreviewTableProgressDialog( this.dbExplorerDialog.getShell(), this.model.getDatabaseMeta(), model
.getSchema(), model.getTable(), limit );
List<Object[]> rows = pd.open();
if ( rows != null ) { // otherwise an already shown error...
if ( rows.size() > 0 ) {
PreviewRowsDialog prd =
new PreviewRowsDialog(
this.dbExplorerDialog.getShell(), this.model.getDatabaseMeta(), SWT.None, this.model.getTable(),
pd.getRowMeta(), rows );
prd.open();
} else {
MessageBox mb = new MessageBox( this.dbExplorerDialog.getShell(), SWT.ICON_INFORMATION | SWT.OK );
mb.setMessage( BaseMessages.getString( PKG, "DatabaseExplorerDialog.NoRows.Message" ) );
mb.setText( BaseMessages.getString( PKG, "DatabaseExplorerDialog.NoRows.Title" ) );
mb.open();
}
}
} catch ( Exception e ) {
LogChannel.GENERAL.logError( "Error previewing rows", e );
}
}
public void refresh() {
collapse();
this.model.getDatabase().clear();
createDatabaseNodes();
if ( this.status != UiPostActionStatus.OK ) {
// something goes dramatically wrong!
return;
}
fireBindings();
}
/**
*
* @return true if all goes fine, false otherwise. This will signal to caller
* that it may not attempt to show broken dialog
*/
void createDatabaseNodes() {
this.status = UiPostActionStatus.NONE;
Database theDatabase = new Database( null, this.model.getDatabaseMeta() );
try {
theDatabase.connect();
GetDatabaseInfoProgressDialog gdipd =
new GetDatabaseInfoProgressDialog( (Shell) this.dbExplorerDialog.getRootObject(), this.model
.getDatabaseMeta() );
DatabaseMetaInformation dmi = gdipd.open();
// Adds the main database node.
DatabaseExplorerNode theDatabaseNode = new DatabaseExplorerNode();
theDatabaseNode.setName( this.model.getDatabaseMeta().getName() );
theDatabaseNode.setImage( DATABASE_IMAGE );
this.model.getDatabase().add( theDatabaseNode );
// Adds the Schema database node.
DatabaseExplorerNode theSchemasNode = new DatabaseExplorerNode();
theSchemasNode.setName( STRING_SCHEMAS );
theSchemasNode.setImage( FOLDER_IMAGE );
theDatabaseNode.add( theSchemasNode );
// Adds the Tables database node.
DatabaseExplorerNode theTablesNode = new DatabaseExplorerNode();
theTablesNode.setName( STRING_TABLES );
theTablesNode.setImage( FOLDER_IMAGE );
theDatabaseNode.add( theTablesNode );
// Adds the Views database node.
DatabaseExplorerNode theViewsNode = new DatabaseExplorerNode();
theViewsNode.setName( STRING_VIEWS );
theViewsNode.setImage( FOLDER_IMAGE );
theDatabaseNode.add( theViewsNode );
// Adds the Synonyms database node.
DatabaseExplorerNode theSynonymsNode = new DatabaseExplorerNode();
theSynonymsNode.setName( STRING_SYNONYMS );
theSynonymsNode.setImage( FOLDER_IMAGE );
theDatabaseNode.add( theSynonymsNode );
// Adds the database schemas.
Schema[] schemas = dmi.getSchemas();
if ( schemas != null ) {
DatabaseExplorerNode theSchemaNode = null;
for ( int i = 0; i < schemas.length; i++ ) {
theSchemaNode = new DatabaseExplorerNode();
theSchemaNode.setName( schemas[i].getSchemaName() );
theSchemaNode.setImage( SCHEMA_IMAGE );
theSchemaNode.setIsSchema( true );
theSchemasNode.add( theSchemaNode );
// Adds the database tables for the given schema.
String[] theTableNames = schemas[i].getItems();
if ( theTableNames != null ) {
for ( int i2 = 0; i2 < theTableNames.length; i2++ ) {
DatabaseExplorerNode theTableNode = new DatabaseExplorerNode();
theTableNode.setIsTable( true );
theTableNode.setSchema( schemas[i].getSchemaName() );
theTableNode.setName( theTableNames[i2] );
theTableNode.setImage( TABLE_IMAGE );
theSchemaNode.add( theTableNode );
theTableNode.setParent( theSchemaNode );
}
}
}
}
// Adds the database tables.
Map<String, Collection<String>> tableMap = dmi.getTableMap();
List<String> tableKeys = new ArrayList<String>( tableMap.keySet() );
Collections.sort( tableKeys );
for ( String schema : tableKeys ) {
List<String> tables = new ArrayList<String>( tableMap.get( schema ) );
Collections.sort( tables );
for ( String table : tables ) {
DatabaseExplorerNode theTableNode = new DatabaseExplorerNode();
theTableNode.setIsTable( true );
theTableNode.setName( table );
theTableNode.setImage( TABLE_IMAGE );
theTablesNode.add( theTableNode );
}
}
// Adds the database views.
Map<String, Collection<String>> viewMap = dmi.getViewMap();
if ( viewMap != null ) {
List<String> viewKeys = new ArrayList<String>( viewMap.keySet() );
Collections.sort( viewKeys );
for ( String schema : viewKeys ) {
List<String> views = new ArrayList<String>( viewMap.get( schema ) );
Collections.sort( views );
for ( String view : views ) {
DatabaseExplorerNode theViewNode = new DatabaseExplorerNode();
theViewNode.setIsTable( true );
theViewNode.setName( view );
theViewNode.setImage( TABLE_IMAGE );
theViewsNode.add( theViewNode );
}
}
}
// Adds the Synonyms.
Map<String, Collection<String>> synonymMap = dmi.getSynonymMap();
if ( synonymMap != null ) {
List<String> synonymKeys = new ArrayList<String>( synonymMap.keySet() );
Collections.sort( synonymKeys );
for ( String schema : synonymKeys ) {
List<String> synonyms = new ArrayList<String>( synonymMap.get( schema ) );
Collections.sort( synonyms );
for ( String synonym : synonyms ) {
DatabaseExplorerNode theSynonymNode = new DatabaseExplorerNode();
theSynonymNode.setIsTable( true );
theSynonymNode.setName( synonym );
theSynonymNode.setImage( TABLE_IMAGE );
theSynonymsNode.add( theSynonymNode );
}
}
}
} catch ( Exception e ) {
// Something goes wrong?
this.status = UiPostActionStatus.ERROR;
theDatabase.disconnect();
new ErrorDialog( shell, "Error", "Unexpected explorer error:", e );
this.status = UiPostActionStatus.ERROR_DIALOG_SHOWN;
return;
} finally {
if ( theDatabase != null ) {
try {
theDatabase.disconnect();
} catch ( Exception ignored ) {
// Can't do anything else here...
}
theDatabase = null;
}
}
this.status = UiPostActionStatus.OK;
}
public void close() {
this.dbExplorerDialog.setVisible( false );
}
public void expandCollapse() {
if ( this.isExpanded ) {
collapse();
} else {
expand();
}
}
private void expand() {
this.databaseTree.expandAll();
this.isExpanded = true;
this.expandCollapseButton.setImage( COLLAPSE_ALL_IMAGE );
}
private void collapse() {
this.databaseTree.collapseAll();
this.isExpanded = false;
this.expandCollapseButton.setImage( EXPAND_ALL_IMAGE );
}
public void getDDL() {
if ( model.getTable() == null ) {
return;
}
Database db = new Database( null, this.model.getDatabaseMeta() );
try {
db.connect();
String tableName = getSchemaAndTable( this.model );
RowMetaInterface r = db.getTableFields( tableName );
String sql = db.getCreateTableStatement( tableName, r, null, false, null, true );
SQLEditor se =
new SQLEditor( this.getDatabaseMeta(), this.dbExplorerDialog.getShell(), SWT.NONE, this.model
.getDatabaseMeta(), this.dbcache, sql );
se.open();
} catch ( KettleDatabaseException dbe ) {
new ErrorDialog(
this.dbExplorerDialog.getShell(), BaseMessages.getString( PKG, "Dialog.Error.Header" ), BaseMessages
.getString( PKG, "DatabaseExplorerDialog.Error.RetrieveLayout" ), dbe );
} finally {
db.disconnect();
}
}
public void getDDLForOther() {
if ( databases != null ) {
try {
// Now select the other connection...
// Only take non-SAP ERP connections....
List<DatabaseMeta> dbs = new ArrayList<DatabaseMeta>();
for ( int i = 0; i < databases.size(); i++ ) {
if ( ( ( databases.get( i ) ).getDatabaseInterface().isExplorable() ) ) {
dbs.add( databases.get( i ) );
}
}
String[] conn = new String[dbs.size()];
for ( int i = 0; i < conn.length; i++ ) {
conn[i] = ( dbs.get( i ) ).getName();
}
EnterSelectionDialog esd = new EnterSelectionDialog( this.dbExplorerDialog.getShell(), conn,
BaseMessages.getString( PKG, "DatabaseExplorerDialog.TargetDatabase.Title" ),
BaseMessages.getString( PKG, "DatabaseExplorerDialog.TargetDatabase.Message" ) );
String target = esd.open();
if ( target != null ) {
DatabaseMeta targetdbi = DatabaseMeta.findDatabase( dbs, target );
Database targetdb = new Database( null, targetdbi );
try {
targetdb.connect();
String tableName = getSchemaAndTable( model );
RowMetaInterface r = targetdb.getTableFields( tableName );
String sql = targetdb.getCreateTableStatement( tableName, r, null, false, null, true );
SQLEditor se =
new SQLEditor( this.getDatabaseMeta(), this.dbExplorerDialog.getShell(), SWT.NONE, this.model
.getDatabaseMeta(), this.dbcache, sql );
se.open();
} finally {
targetdb.disconnect();
}
}
} catch ( KettleDatabaseException dbe ) {
new ErrorDialog(
this.dbExplorerDialog.getShell(), BaseMessages.getString( PKG, "Dialog.Error.Header" ), BaseMessages
.getString( PKG, "DatabaseExplorerDialog.Error.GenDDL" ), dbe );
}
} else {
MessageBox mb = new MessageBox( this.dbExplorerDialog.getShell(), SWT.NONE | SWT.ICON_INFORMATION );
mb.setMessage( BaseMessages.getString( PKG, "DatabaseExplorerDialog.NoConnectionsKnown.Message" ) );
mb.setText( BaseMessages.getString( PKG, "DatabaseExplorerDialog.NoConnectionsKnown.Title" ) );
mb.open();
}
}
public void dataProfile() {
if ( model.getTable() == null ) {
return;
}
Shell dbShell = (Shell) dbExplorerDialog.getRootObject();
try {
TransProfileFactory profileFactory =
new TransProfileFactory( this.model.getDatabaseMeta(), getSchemaAndTable( this.model ) );
TransMeta transMeta = profileFactory.generateTransformation( new LoggingObject( model.getTable() ) );
TransPreviewProgressDialog progressDialog =
new TransPreviewProgressDialog(
dbShell, transMeta, new String[] { TransProfileFactory.RESULT_STEP_NAME, }, new int[] { 25000, } );
progressDialog.open();
if ( !progressDialog.isCancelled() ) {
Trans trans = progressDialog.getTrans();
String loggingText = progressDialog.getLoggingText();
if ( trans.getResult() != null && trans.getResult().getNrErrors() > 0 ) {
EnterTextDialog etd =
new EnterTextDialog(
dbShell, BaseMessages.getString( PKG, "System.Dialog.PreviewError.Title" ), BaseMessages
.getString( PKG, "System.Dialog.PreviewError.Message" ), loggingText, true );
etd.setReadOnly();
etd.open();
}
PreviewRowsDialog prd =
new PreviewRowsDialog(
dbShell, transMeta, SWT.NONE, TransProfileFactory.RESULT_STEP_NAME, progressDialog
.getPreviewRowsMeta( TransProfileFactory.RESULT_STEP_NAME ), progressDialog
.getPreviewRows( TransProfileFactory.RESULT_STEP_NAME ), loggingText );
prd.open();
}
} catch ( Exception e ) {
new ErrorDialog( this.dbExplorerDialog.getShell(),
BaseMessages.getString( PKG, "DatabaseExplorerDialog.UnexpectedProfilingError.Title" ),
BaseMessages.getString( PKG, "DatabaseExplorerDialog.UnexpectedProfilingError.Message" ), e );
}
}
class PromptCallback implements XulDialogCallback<Object> {
private int limit = -1;
public void onClose( XulComponent aSender, Status aReturnCode, Object aRetVal ) {
if ( aReturnCode == Status.ACCEPT ) {
try {
this.limit = Integer.parseInt( aRetVal.toString() );
} catch ( NumberFormatException e ) {
LogChannel.GENERAL.logError( "Error parsing string '" + aRetVal.toString() + "'", e );
}
}
}
public void onError( XulComponent aSenter, Throwable aThrowable ) {
}
public int getLimit() {
return this.limit;
}
}
private String getSchemaAndTable( XulDatabaseExplorerModel model ) {
return getSchemaAndTable( model, model.getDatabaseMeta() );
}
private String getSchemaAndTable( XulDatabaseExplorerModel model, DatabaseMeta meta ) {
if ( model.getSchema() != null ) {
return meta.getQuotedSchemaTableCombination( model.getSchema(), model.getTable() );
} else {
return meta.getQuotedSchemaTableCombination( null, model.getTable() );
}
}
@Override
public UiPostActionStatus getActionStatus() {
return status;
}
}

View File

@ -0,0 +1,131 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.io.File;
import java.util.Enumeration;
import java.util.List;
import java.util.ResourceBundle;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.logging.LogChannel;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.spoon.SpoonPluginManager;
import org.pentaho.di.ui.spoon.XulSpoonSettingsManager;
import org.pentaho.di.ui.xul.KettleXulLoader;
import org.pentaho.ui.xul.XulDomContainer;
import org.pentaho.ui.xul.XulRunner;
import org.pentaho.ui.xul.containers.XulDialog;
import org.pentaho.ui.xul.impl.DefaultSettingsManager;
import org.pentaho.ui.xul.swt.SwtXulRunner;
public class XulDatabaseExplorerDialog {
private static final Class<?> PKG = XulDatabaseExplorerDialog.class;
private Shell shell;
private XulDomContainer container;
private XulRunner runner;
private XulDatabaseExplorerController controller;
private DatabaseMeta databaseMeta;
private List<DatabaseMeta> databases;
private static final String XUL = "org/pentaho/di/ui/core/database/dialog/database_explorer.xul";
private boolean look;
private String schemaName;
private String selectedTable;
public XulDatabaseExplorerDialog( Shell aShell, DatabaseMeta aDatabaseMeta, List<DatabaseMeta> aDataBases,
boolean aLook ) {
this.shell = aShell;
this.databaseMeta = aDatabaseMeta;
this.databases = aDataBases;
this.look = aLook;
}
public boolean open() {
try {
KettleXulLoader theLoader = new KettleXulLoader();
theLoader.setSettingsManager( XulSpoonSettingsManager.getInstance() );
theLoader.setSettingsManager( new DefaultSettingsManager( new File( Const.getKettleDirectory()
+ Const.FILE_SEPARATOR + "xulSettings.properties" ) ) );
theLoader.setOuterContext( this.shell );
this.container = theLoader.loadXul( XUL, new XulDatabaseExplorerResourceBundle() );
XulDialog theExplorerDialog =
(XulDialog) this.container.getDocumentRoot().getElementById( "databaseExplorerDialog" );
SpoonPluginManager.getInstance().applyPluginsForContainer( "database_dialog", container );
this.controller =
new XulDatabaseExplorerController(
(Shell) theExplorerDialog.getRootObject(), this.databaseMeta, this.databases, look );
this.container.addEventHandler( this.controller );
this.runner = new SwtXulRunner();
this.runner.addContainer( this.container );
this.runner.initialize();
this.controller.setSelectedSchemaAndTable( schemaName, selectedTable );
// show dialog if connection is success only.
if ( controller.getActionStatus() == UiPostActionStatus.OK ) {
theExplorerDialog.show();
}
} catch ( Exception e ) {
LogChannel.GENERAL.logError( "Error exploring database", e );
}
return this.controller.getSelectedTable() != null;
}
public void setSelectedSchemaAndTable( String aSchema, String aTable ) {
schemaName = aSchema;
selectedTable = aTable;
}
public String getSchemaName() {
return ( this.controller != null ) ? this.controller.getSelectedSchema() : schemaName;
}
public String getTableName() {
return ( this.controller != null ) ? this.controller.getSelectedTable() : selectedTable;
}
private static class XulDatabaseExplorerResourceBundle extends ResourceBundle {
@Override
public Enumeration<String> getKeys() {
return null;
}
@Override
protected Object handleGetObject( String key ) {
return BaseMessages.getString( PKG, key );
}
}
}

View File

@ -0,0 +1,121 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.util.ListIterator;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.util.Utils;
import org.pentaho.ui.xul.XulEventSourceAdapter;
import org.pentaho.ui.xul.util.AbstractModelNode;
public class XulDatabaseExplorerModel extends XulEventSourceAdapter {
// TODO can this be renamed? it's actually just the root node
private XulDatabaseExplorerNode database;
protected DatabaseMeta databaseMeta;
private DatabaseExplorerNode selectedNode;
public XulDatabaseExplorerModel( DatabaseMeta aDatabaseMeta ) {
this.database = new XulDatabaseExplorerNode();
this.databaseMeta = aDatabaseMeta;
}
public DatabaseMeta getDatabaseMeta() {
return this.databaseMeta;
}
public XulDatabaseExplorerNode getDatabase() {
return this.database;
}
public void setDatabase( XulDatabaseExplorerNode aDatabase ) {
this.database = aDatabase;
}
public String getTable() {
if ( selectedNode != null && selectedNode.isTable() ) {
return selectedNode.getName();
}
return null;
}
public String getSchema() {
if ( selectedNode != null ) {
return selectedNode.getSchema();
}
return null;
}
/**
* Finds the node.
*
* @param aSchema
* can be null
* @param aName
* can be null
* @return node
*/
public DatabaseExplorerNode findBy( String aSchema, String aTable ) {
ListIterator<DatabaseExplorerNode> theNodes = this.database.listIterator();
return drillDown( theNodes, aSchema, aTable );
}
private DatabaseExplorerNode drillDown( ListIterator<DatabaseExplorerNode> aNodes, String aSchema, String aTable ) {
boolean lookingForSchema = aTable == null || Utils.isEmpty( aTable );
DatabaseExplorerNode theNode = null;
while ( aNodes.hasNext() ) {
theNode = aNodes.next();
if ( theNode != null ) {
if ( lookingForSchema && theNode.isSchema() && theNode.getName().equals( aSchema ) ) {
break;
} else if ( !lookingForSchema
&& theNode.isTable() && theNode.getName().equals( aTable )
&& ( theNode.getSchema() != null ? theNode.getSchema().equals( aSchema ) : aSchema == null ) ) {
break;
} else {
theNode = drillDown( theNode.listIterator(), aSchema, aTable );
if ( theNode != null ) {
break;
}
}
}
}
return theNode;
}
// TODO mlowery why is this subclass needed?
public static class XulDatabaseExplorerNode extends AbstractModelNode<DatabaseExplorerNode> {
private static final long serialVersionUID = 2466708563640027488L;
}
public DatabaseExplorerNode getSelectedNode() {
return selectedNode;
}
public void setSelectedNode( DatabaseExplorerNode selectedNode ) {
DatabaseExplorerNode prevVal = this.selectedNode;
this.selectedNode = selectedNode;
firePropertyChange( "selectedNode", prevVal, this.selectedNode );
}
}

View File

@ -0,0 +1,143 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.ui.xul.binding.Binding;
import org.pentaho.ui.xul.binding.Binding.Type;
import org.pentaho.ui.xul.binding.BindingFactory;
import org.pentaho.ui.xul.binding.DefaultBindingFactory;
import org.pentaho.ui.xul.containers.XulDialog;
import org.pentaho.ui.xul.containers.XulTree;
import org.pentaho.ui.xul.containers.XulTreeRow;
import org.pentaho.ui.xul.impl.AbstractXulEventHandler;
import org.pentaho.ui.xul.swt.tags.SwtTreeCell;
import org.pentaho.ui.xul.swt.tags.SwtTreeCol;
import org.pentaho.ui.xul.swt.tags.SwtTreeCols;
public class XulPreviewRowsController extends AbstractXulEventHandler {
private Shell shell;
private DatabaseMeta databaseMeta;
private String schema;
private String table;
private int limit;
private BindingFactory bf;
private Binding rowCountBinding;
private String rowCount;
private static Log logger = LogFactory.getLog( XulStepFieldsController.class );
public XulPreviewRowsController( Shell aShell, DatabaseMeta aDatabaseMeta, String aSchema, String aTable,
int aLimit ) {
this.shell = aShell;
this.databaseMeta = aDatabaseMeta;
this.schema = aSchema;
this.table = aTable;
this.limit = aLimit;
this.bf = new DefaultBindingFactory();
}
public void init() {
createPreviewRows();
this.bf.setDocument( super.document );
this.bf.setBindingType( Type.ONE_WAY );
this.rowCountBinding = this.bf.createBinding( this, "rowCount", "rowCountLabel", "value" );
fireBindings();
}
private void fireBindings() {
try {
this.rowCountBinding.fireSourceChanged();
} catch ( Exception e ) {
logger.info( e );
}
}
private void createPreviewRows() {
GetPreviewTableProgressDialog theProgressDialog =
new GetPreviewTableProgressDialog( this.shell, this.databaseMeta, this.schema, this.table, this.limit );
List<Object[]> thePreviewData = theProgressDialog.open();
// Adds table rows.
Object[] theObj = null;
XulTreeRow theRow = null;
Object theValue = null;
SwtTreeCell theCell = null;
int theRowCount = 0;
XulTree thePreviewTable = (XulTree) super.document.getElementById( "table_data" );
thePreviewTable.getRootChildren().removeAll();
Iterator<Object[]> theItr = thePreviewData.iterator();
while ( theItr.hasNext() ) {
theObj = theItr.next();
theRow = thePreviewTable.getRootChildren().addNewRow();
theRowCount++;
for ( int i = 0; i < theObj.length; i++ ) {
theValue = theObj[i];
theCell = new SwtTreeCell( null );
theCell.setLabel( theValue == null ? "" : theValue.toString() );
theRow.addCell( theCell );
}
}
// Adds table columns.
SwtTreeCol theColumn = null;
String[] theFieldNames = theProgressDialog.getRowMeta().getFieldNames();
SwtTreeCols theColumns = new SwtTreeCols( null, thePreviewTable, null, null );
for ( int i = 0; i < theFieldNames.length; i++ ) {
theColumn = new SwtTreeCol( null, null, null, null );
theColumn.setWidth( 100 );
theColumn.setLabel( theFieldNames[i] );
theColumns.addColumn( theColumn );
}
thePreviewTable.setColumns( theColumns );
thePreviewTable.update();
setRowCount( "Rows of step: " + this.table + " (" + theRowCount + " rows)" );
}
public void accept() {
XulDialog theDialog = (XulDialog) super.document.getElementById( "previewRowsDialog" );
theDialog.setVisible( false );
}
public void setRowCount( String aRowCount ) {
this.rowCount = aRowCount;
}
public String getRowCount() {
return this.rowCount;
}
public String getName() {
return "previewRows";
}
}

View File

@ -0,0 +1,81 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.ui.spoon.XulSpoonSettingsManager;
import org.pentaho.di.ui.xul.KettleXulLoader;
import org.pentaho.ui.xul.XulDomContainer;
import org.pentaho.ui.xul.XulRunner;
import org.pentaho.ui.xul.containers.XulDialog;
import org.pentaho.ui.xul.swt.SwtXulRunner;
public class XulPreviewRowsDialog {
private Shell shell;
private int limit;
private String schema;
private String table;
private XulDomContainer container;
private XulRunner runner;
private XulPreviewRowsController controller;
private DatabaseMeta databaseMeta;
private static Log logger = LogFactory.getLog( XulPreviewRowsDialog.class );
private static final String XUL = "org/pentaho/di/ui/core/database/dialog/preview_rows.xul";
public XulPreviewRowsDialog( Shell aShell, int aStyle, DatabaseMeta aDatabaseMeta, String aSchemaName,
String aTableName, int aLimit ) {
this.shell = aShell;
this.limit = aLimit;
this.schema = aSchemaName;
this.table = aTableName;
this.databaseMeta = aDatabaseMeta;
}
public void open() {
try {
KettleXulLoader theLoader = new KettleXulLoader();
theLoader.setSettingsManager( XulSpoonSettingsManager.getInstance() );
theLoader.setOuterContext( this.shell );
this.container = theLoader.loadXul( XUL );
this.controller =
new XulPreviewRowsController( this.shell, this.databaseMeta, this.schema, this.table, this.limit );
this.container.addEventHandler( this.controller );
this.runner = new SwtXulRunner();
this.runner.addContainer( this.container );
this.runner.initialize();
XulDialog thePreviewDialog =
(XulDialog) this.container.getDocumentRoot().getElementById( "previewRowsDialog" );
thePreviewDialog.show();
} catch ( Exception e ) {
logger.info( e );
}
}
}

View File

@ -0,0 +1,165 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.logging.LogChannel;
import org.pentaho.di.core.row.RowMetaInterface;
import org.pentaho.di.core.row.ValueMetaInterface;
import org.pentaho.ui.xul.binding.Binding;
import org.pentaho.ui.xul.binding.Binding.Type;
import org.pentaho.ui.xul.binding.BindingConvertor;
import org.pentaho.ui.xul.binding.BindingFactory;
import org.pentaho.ui.xul.binding.DefaultBindingFactory;
import org.pentaho.ui.xul.containers.XulDialog;
import org.pentaho.ui.xul.containers.XulTree;
import org.pentaho.ui.xul.impl.AbstractXulEventHandler;
public class XulStepFieldsController extends AbstractXulEventHandler {
private Shell shell;
private DatabaseMeta databaseMeta;
private String schemaTableCombo;
private BindingFactory bf;
private Binding stepFieldsTreeBinding;
private Binding stepNameBinding;
private Binding acceptButtonBinding;
private XulTree stepFieldsTree;
private XulStepFieldsModel model;
private Boolean showAcceptButton;
private RowMetaInterface rowMetaInterface;
public XulStepFieldsController( Shell aShell, DatabaseMeta aDatabaseMeta, String schemaTableCombo,
RowMetaInterface anInput ) {
this.shell = aShell;
this.databaseMeta = aDatabaseMeta;
this.schemaTableCombo = schemaTableCombo;
this.bf = new DefaultBindingFactory();
this.model = new XulStepFieldsModel();
this.rowMetaInterface = anInput;
}
public void init() {
createStepFieldNodes();
this.bf.setDocument( super.document );
this.bf.setBindingType( Type.ONE_WAY );
this.stepFieldsTree = (XulTree) super.document.getElementById( "step_fields_data" );
this.stepFieldsTreeBinding = this.bf.createBinding( this.model, "stepFields", this.stepFieldsTree, "elements" );
this.stepNameBinding = this.bf.createBinding( this.model, "stepName", "stepNameLabel", "value" );
this.acceptButtonBinding =
this.bf.createBinding( this, "showAcceptButton", "stepFieldsDialog_accept", "visible" );
if ( this.getShowAcceptButton() ) {
BindingConvertor<StepFieldNode, Boolean> isDisabledConvertor =
new BindingConvertor<StepFieldNode, Boolean>() {
public Boolean sourceToTarget( StepFieldNode value ) {
return !( value != null );
}
public StepFieldNode targetToSource( Boolean value ) {
return null;
}
};
this.acceptButtonBinding =
this.bf.createBinding(
this.stepFieldsTree, "selectedItem", "stepFieldsDialog_accept", "disabled", isDisabledConvertor );
}
fireBindings();
}
public void cancelDialog() {
XulDialog theDialog = (XulDialog) super.document.getElementById( "stepFieldsDialog" );
theDialog.setVisible( false );
}
public void setShowAcceptButton( boolean isVisible ) {
this.showAcceptButton = isVisible;
}
public boolean getShowAcceptButton() {
return this.showAcceptButton;
}
private void createStepFieldNodes() {
if ( this.rowMetaInterface == null ) {
String theSql = this.databaseMeta.getSQLQueryFields( this.schemaTableCombo );
GetQueryFieldsProgressDialog theProgressDialog =
new GetQueryFieldsProgressDialog( this.shell, this.databaseMeta, theSql );
this.rowMetaInterface = theProgressDialog.open();
}
this.model.setStepName( "Step name:" + this.schemaTableCombo );
if ( this.rowMetaInterface != null ) {
StepFieldNode theStep = null;
for ( int i = 0; i < this.rowMetaInterface.size(); i++ ) {
theStep = new StepFieldNode();
ValueMetaInterface theMetaInterface = this.rowMetaInterface.getValueMeta( i );
theStep.setFieldName( theMetaInterface.getName() );
theStep.setType( theMetaInterface.getTypeDesc() );
theStep.setLength( Integer.toString( theMetaInterface.getLength() ) );
theStep.setPrecision( Integer.toString( theMetaInterface.getPrecision() ) );
theStep.setOrigin( theMetaInterface.getOrigin() );
theStep.setStorageType( Integer.toString( theMetaInterface.getStorageType() ) );
theStep.setConversionMask( theMetaInterface.getConversionMask() );
theStep.setDecimalSymbol( theMetaInterface.getDecimalSymbol() );
theStep.setGroupingSymbol( theMetaInterface.getGroupingSymbol() );
theStep.setTrimType( Integer.toString( theMetaInterface.getTrimType() ) );
theStep.setComments( theMetaInterface.getComments() );
this.model.addStepField( theStep );
}
}
}
public void editOriginStep() {
StepFieldNode theSelectedStep = (StepFieldNode) this.stepFieldsTree.getSelectedItem();
if ( theSelectedStep != null ) {
XulDialog theStepsDialog = (XulDialog) document.getElementById( "stepFieldsDialog" );
theStepsDialog.hide();
}
}
public String getSelectedStep() {
return this.schemaTableCombo;
}
public String getName() {
return "stepFields";
}
private void fireBindings() {
try {
this.stepFieldsTreeBinding.fireSourceChanged();
this.stepNameBinding.fireSourceChanged();
this.acceptButtonBinding.fireSourceChanged();
} catch ( Exception e ) {
LogChannel.GENERAL.logError( "Error firing bindings", e );
}
}
}

View File

@ -0,0 +1,86 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.row.RowMetaInterface;
import org.pentaho.di.ui.spoon.XulSpoonSettingsManager;
import org.pentaho.di.ui.xul.KettleXulLoader;
import org.pentaho.ui.xul.XulDomContainer;
import org.pentaho.ui.xul.XulRunner;
import org.pentaho.ui.xul.containers.XulDialog;
import org.pentaho.ui.xul.swt.SwtXulRunner;
import org.pentaho.ui.xul.swt.tags.SwtDialog;
public class XulStepFieldsDialog {
private Shell shell;
private String schemaTableCombo;
private XulDomContainer container;
private XulRunner runner;
private XulStepFieldsController controller;
private DatabaseMeta databaseMeta;
private RowMetaInterface rowMeta;
private static Log logger = LogFactory.getLog( XulStepFieldsDialog.class );
private static final String XUL = "org/pentaho/di/ui/core/database/dialog/step_fields.xul";
public XulStepFieldsDialog( Shell aShell, int aStyle, DatabaseMeta aDatabaseMeta, String aTableName,
RowMetaInterface anInput, String schemaName ) {
this.shell = aShell;
this.schemaTableCombo = aDatabaseMeta.getQuotedSchemaTableCombination( schemaName, aTableName );
this.databaseMeta = aDatabaseMeta;
this.rowMeta = anInput;
}
public void open( boolean isAcceptButtonHidden ) {
try {
KettleXulLoader theLoader = new KettleXulLoader();
theLoader.setOuterContext( this.shell );
theLoader.setSettingsManager( XulSpoonSettingsManager.getInstance() );
this.container = theLoader.loadXul( XUL );
this.controller =
new XulStepFieldsController( this.shell, this.databaseMeta, this.schemaTableCombo, this.rowMeta );
this.controller.setShowAcceptButton( isAcceptButtonHidden );
this.container.addEventHandler( this.controller );
this.runner = new SwtXulRunner();
this.runner.addContainer( this.container );
this.runner.initialize();
XulDialog thePreviewDialog =
(XulDialog) this.container.getDocumentRoot().getElementById( "stepFieldsDialog" );
thePreviewDialog.show();
( (SwtDialog) thePreviewDialog ).dispose();
} catch ( Exception e ) {
logger.info( e );
}
}
public String getSelectedStep() {
return this.controller.getSelectedStep();
}
}

View File

@ -0,0 +1,64 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog;
import org.pentaho.ui.xul.XulEventSourceAdapter;
import org.pentaho.ui.xul.util.AbstractModelList;
public class XulStepFieldsModel extends XulEventSourceAdapter {
private String stepName;
private FieldsCollection stepFields;
public XulStepFieldsModel() {
this.stepFields = new FieldsCollection();
}
public FieldsCollection getStepFields() {
return this.stepFields;
}
public void setStepFields( FieldsCollection aStepFields ) {
this.stepFields = aStepFields;
}
public String toString() {
return "Step Fields Node";
}
public void setStepName( String aStepName ) {
this.stepName = aStepName;
}
public String getStepName() {
return this.stepName;
}
public void addStepField( StepFieldNode aStepField ) {
this.stepFields.add( aStepField );
}
public static class FieldsCollection extends AbstractModelList<StepFieldNode> {
private static final long serialVersionUID = -2489107137334871323L;
}
}

View File

@ -0,0 +1,65 @@
<?xml version="1.0"?>
<dialog width="600" height="400" id="databaseExplorerDialog" title="${DatabaseExplorer.Title}" appicon="ui/images/CNC.svg"
ondialogaccept="dbexplorer.accept()"
ondialogcancel="dbexplorer.cancel()" onload="dbexplorer.init()" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional" xmlns:pen="http://www.pentaho.org/2008/xul" >
<vbox flex="1" id="mainVBox">
<hbox>
<spacer flex="1"/>
<button image="ui/images/refresh.png" onclick="dbexplorer.refresh()" tooltiptext="${tooltip_refresh}"/>
<button id="expandCollapseButton" image="ui/images/ExpandAll.png" onclick="dbexplorer.expandCollapse()" tooltiptext="${tooltip_expand_collapse}"/>
<!--<label value="Actions" id="action_label"/>-->
<spacer width="25"/>
<button label="${DatabaseExplorer.Actions}" id="buttonMenuPopUp" image="" menu="action_popup" disabled="true"/>
<button id="buttonMenuPopUpImg" image="ui/images/9x9_arrow_down.gif" menu="action_popup" disabled="true"/>
</hbox>
<tree id="databaseTree" flex="1" editable="false" expanded="false" context="action_popup" command="dbexplorer.accept()">
<treecols>
<treecol flex="1" label="" primary="true" editable="false" pen:binding="label" pen:childrenbinding="children" pen:imagebinding="image" />
</treecols>
<treechildren>
<treeitem container="true" open="true">
<treerow>
<treecell label="Schema" />
</treerow>
<treechildren>
<treeitem container="true" open="true">
<treerow>
<treecell label="Tables" />
</treerow>
<treechildren>
<treeitem container="true" open="true">
<treerow>
<treecell label="Table" />
</treerow>
<treechildren>
</treechildren>
</treeitem>
</treechildren>
</treeitem>
</treechildren>
</treeitem>
</treechildren>
</tree>
</vbox>
<menupopup id="action_popup">
<menuitem label="${DatabaseExplorer.Preview100}" command="dbexplorer.preview(false)"/>
<menuitem label="${DatabaseExplorer.PreviewX}" command="dbexplorer.preview(true)"/>
<menuitem label="${DatabaseExplorer.RowCount}" command="dbexplorer.displayRowCount()"/>
<menuitem label="${DatabaseExplorer.ShowLayout}" command="dbexplorer.showLayout()"/>
<menu label="${DatabaseExplorer.DDL}">
<menupopup>
<menuitem label="${DatabaseExplorer.UseCurrent}" command="dbexplorer.getDDL()"/>
<menuitem label="${DatabaseExplorer.SelectConnection}" command="dbexplorer.getDDLForOther()"/>
</menupopup>
</menu>
<menuitem label="${DatabaseExplorer.ViewSQL}" command="dbexplorer.viewSql()"/>
<menuitem label="${DatabaseExplorer.Truncate}" command="dbexplorer.truncate()"/>
<menuitem label="${DatabaseExplorer.DataProfile}" command="dbexplorer.dataProfile()"/>
</menupopup>
</dialog>

View File

@ -0,0 +1,11 @@
<!-- ############################################################################### -->
<!-- TEST BUTTON BOX: A box for the test button. -->
<!-- ############################################################################### -->
<hbox id="test-button-box">
<label id="spacer-label" flex="5" />
<button id="test-button" label="${DatabaseDialog.button.Test}" flex="1" onclick="dataHandler.testDatabaseConnection()" />
<button id="feature-button" label="${DatabaseDialog.button.FeatureList}" flex="1" onclick="dataHandler.showFeatureList()" />
<button id="explore-button" label="${DatabaseDialog.button.Explore}" flex="1" onclick="dataHandler.explore()" />
<label id="spacer-label" flex="5" />
</hbox>

View File

@ -0,0 +1,391 @@
#
# Dialog allgemein
#
Dialog.Error.EnterInteger=Bitte geben Sie eine Ganzzahl ein!
Dialog.Error.Header=Fehler
#
# Check Result Dialog
#
CheckResultDialog.Title=Ergebnisse der Transformations-Prüfung
CheckResultDialog.HideSuccessful.Label=Verberge erfolgreiche Tests
CheckResultDialog.ShowSuccessful.Label=Zeige erfolgreiche Tests
CheckResultDialog.Remarks.Label=Anmerkungen\:
CheckResultDialog.WarningsErrors.Label=Warnungen und Fehler\:
CheckResultDialog.Stepname.Label=Schrittname
CheckResultDialog.Result.Label=Resultat
CheckResultDialog.Remark.Label=Anmerkung
CheckResultDialog.Button.ViewMessage=Nachricht ansehen
CheckResultDialog.Button.EditOriginStep=Schritt editieren
CheckResultDialog.TextDialog.Title=Nachricht anschauen
CheckResultDialog.TextDialog.Subtitle=Nachricht:
CheckResultDialog.TextDialog.SubtitlePlural=Nachrichten:
#
# Condition Dialog
#
ConditionDialog.Title=Bedingung eingeben
#
# Database Dialog
#
DatabaseDialog.Shell.title=Verbindungs-Informationen
DatabaseDialog.button.Test=\ Testen
DatabaseDialog.button.Explore=\ Durchsuchen
DatabaseDialog.button.FeatureList=\ Feature-Liste
DatabaseDialog.DbTab.title=Allgemein
DatabaseDialog.label.ConnectionName=Verbindungsname
DatabaseDialog.label.ConnectionType=Verbindungstyp
DatabaseDialog.label.AccessMethod=Zugriffsmethode
DatabaseDialog.label.ServerHostname=Server Host-Name
DatabaseDialog.label.DatabaseName=Datenbankname
DatabaseDialog.label.PortNumber=Port-Nummer
DatabaseDialog.label.Username=Nutzername
DatabaseDialog.label.Password=Passwort
DatabaseDialog.PoolTab.title=Pooling
DatabaseDialog.label.UseConnectionPool=Verbindungs-Pool benutzen
DatabaseDialog.label.InitialPoolSize=Initiale Pool-Gr\u00F6\u00DFe
DatabaseDialog.label.MaximumPoolSize=Maximale Pool-Gr\u00F6\u00DFe
DatabaseDialog.OracleTab.title=Oracle
DatabaseDialog.label.TablespaceForData=Tabellenbereich f\u00FCr Daten
DatabaseDialog.label.TablespaceForIndexes=Tabellenbereich f\u00FCr Indizes
DatabaseDialog.MySQLTab.title=MySQL
DatabaseDialog.label.MySQLStreamResults=Ergebnis-"Streaming" benutzen (Cursor simulieren)
DatabaseDialog.IfxTab.title=Informix
DatabaseDialog.label.InformixServername=Informix Server-Name
DatabaseDialog.label.Sap=SAP ERP
DatabaseDialog.label.Language=Sprache
DatabaseDialog.label.SystemNumber=Systemnummer
DatabaseDialog.label.SapClient=SAP Client
DatabaseDialog.GenericTab.title=Generisch
DatabaseDialog.GenericTab.tooltip=Einstellungen für den Fall, dass eine generische Datenbank mit einem nicht unterstützten JDBC-Treiber verwendet werden soll
DatabaseDialog.label.Url=URL
DatabaseDialog.label.DriverClass=Treiberklasse
DatabaseDialog.label.Options=Optionen
DatabaseDialog.tooltip.Options=Weitere Optionen in der URL
DatabaseDialog.button.ShowHelp=Hilfetext bei Verwendung der Option anzeigen
DatabaseDialog.column.DbType=Datenbank-Typ
DatabaseDialog.column.Parameter=Parameter
DatabaseDialog.column.Value=Wert
DatabaseDialog.tooltip.DbType=Weitere Parameter, die in der URL für die Verbindung zu Datenbank gesetzt werden
DatabaseDialog.tooltip.Parameter=Die Werte der Parameter
DatabaseDialog.SQLTab.title=SQL
DatabaseDialog.SQLTab.tooltip=SQL-Anweisung, die nach Verbindungsaufbau ausgeführt werden soll
DatabaseDialog.label.Statements=Die Anweisungen, die nach Verbindungsaufbau ausgeführt werden sollen (getrennt durch Semikolon [;])
DatabaseDialog.ClusterTab.title=Cluster
DatabaseDialog.ClusterTab.tooltip=Zusätzliche Cluster-Informationen
DatabaseDialog.label.UseClustering=Cluster benutzen (noch EXPERIMENTAL)?
DatabaseDialog.tooltip.UseClustering=Cluster verwenden
DatabaseDialog.column.PartitionId=Partitions-ID
DatabaseDialog.column.Hostname=Host-Name
DatabaseDialog.column.Port=Port-Nummer
DatabaseDialog.column.DatabaseName=Datenbank-Name
DatabaseDialog.column.Username=Nutzername
DatabaseDialog.column.Password=Passwort
DatabaseDialog.tooltip.PartitionId=Weitere Parameter, die in der URL für die Verbindung zu Datenbank gesetzt werden
DatabaseDialog.tooltip.Hostname=Die Werte der Parameter
DatabaseDialog.JDBCOptions.Tab={0}: Hilfe für JDBC-Optionen
DatabaseDialog.HelpText.title=Hilfetext für die Optionen
DatabaseDialog.HelpText.description=Hilfetext für [{0}]:
DatabaseDialog.ErrorHelpText.title=Fehler!
DatabaseDialog.ErrorHelpText.description=Konnte Hilfetext nicht laden. Bitte sicherstellen, dass alle nötigen Parameter korrekt eingegeben wurden.
DatabaseDialog.ErrorParameters.title=Fehler!
DatabaseDialog.ErrorParameters.description=Bitte sicherstellen, dass alle nötigen Parameter korrekt eingegeben wurden.
DatabaseDialog.ErrorConnectionInfo.title=Fehler
DatabaseDialog.ErrorConnectionInfo.description=Konnte Verbindungs-Informationen nicht erhalten
DatabaseDialog.report.ConnectionWithPartOk=Die Verbindung zur Datenbank [{0}] mit der Partitions-Id [{1}] ist in Ordnung.
DatabaseDialog.report.ConnectionWithPartError=Fehler beim Verbinden zu Datenbank [{0}] mit der Partitions-Id [{1}] : {2}
DatabaseDialog.report.Hostname= Host-Name \:
DatabaseDialog.report.Port= Port-Nummer \:
DatabaseDialog.report.DatabaseName= Datenbankname \:
DatabaseDialog.report.ConnectionOk=Die Verbindung zur Datenbank [{0}] ist in Ordnung.
DatabaseDialog.report.ConnectionError=Fehler beim Verbinden zu Datenbank [{0}]\:
DatabaseDialog.ConnectionReport.title=Auswertung der Verbindungsaufnahme
DatabaseDialog.ConnectionReport.description=Auswertung der Verbindungsaufnahme
DatabaseDialog.ErrorParameters2.title=Fehler!
DatabaseDialog.ErrorParameters2.description=Bitte stellen Sie sicher, dass alle n\u00F6tigen Parameter korrekt eingegeben wurden\:\n{0}
DatabaseDialog.FeatureList.title=Liste der Eigenschaften
DatabaseDialog.FeatureList.title2=Die Liste der Eigenschaften:
DatabaseDialog.FeatureListError.title=Fehler!
DatabaseDialog.FeatureListError.description=Konnte Liste der Eigenschaften nicht holen. Bitte stellen Sie sicher, dass alle nötigen Parameter korrekt eingegeben wurden.
DatabaseDialog.Exception.IncorrectParameter=Fehlerhafter Datenbank-Parameter\! Bitte folgende Einstellungen \u00FCberpr\u00FCfen\:
DatabaseDialog.label.PoolParameters = Parameter für Verbindungs-Pools
DatabaseDialog.column.PoolParameter=Pool-Parameter
DatabaseDialog.column.PoolDefault=Voreinstellung
DatabaseDialog.column.PoolValue=Wert
DatabaseDialog.column.PoolDescription=Beschreibung des Parameters
DatabaseDialog.column.SelectPoolParameter=Pool-Paramter aussuchen
#
# Database Explorer Dialog
#
DatabaseExplorerDialog.Title=Datenbank-Explorer für Verbindung [{0}]
DatabaseExplorerDialog.Catalogs.Label=Kataloge
DatabaseExplorerDialog.Schemas.Label=Schemata
DatabaseExplorerDialog.Tables.Label=Tabellen
DatabaseExplorerDialog.Views.Label=Sichten
DatabaseExplorerDialog.Synonyms.Label=Synonyme
DatabaseExplorerDialog.Menu.Preview100=&Voransicht der ersten 100 Zeilen von [{0}]
DatabaseExplorerDialog.Menu.PreviewN=Voransicht der &ersten ... Zeilen von [{0}]
DatabaseExplorerDialog.Menu.ShowSize=Anzahl der Zeilen in [{0}]
DatabaseExplorerDialog.Menu.ShowLayout=Struktur der Tabelle [{0}]
DatabaseExplorerDialog.Menu.GenDDL=DDL erzeugen
DatabaseExplorerDialog.Menu.GenDDLOtherConn=DDL für andere Verbindung erzeugen
DatabaseExplorerDialog.Menu.OpenSQL=SQL-Abfrage auf [{0}] erzeugen
DatabaseExplorerDialog.Menu.Truncate=Tabelle [{0}] leeren
DatabaseExplorerDialog.PreviewTable.Title=Voransicht von ... Zeilen
DatabaseExplorerDialog.PreviewTable.Message=Wieviele Zeilen sollen angezeigt werden (0 für "alle Zeilen")
DatabaseExplorerDialog.NoRows.Title=Keine Zeilen
DatabaseExplorerDialog.NoRows.Message=Die Tabelle enthält keine Zeilen
DatabaseExplorerDialog.TableSize.Title=Zeilenanzahl
DatabaseExplorerDialog.TableSize.Message=Die Tabelle ''{0}'' enthält {1} Zeilen
DatabaseExplorerDialog.Error.RetrieveLayout=Konnte Tabellenstruktur nicht ermitteln
DatabaseExplorerDialog.TargetDatabase.Title=Zieldatenbank
DatabaseExplorerDialog.TargetDatabase.Message=Wählen Sie die Zieldatenbank aus:
DatabaseExplorerDialog.Error.GenDDL=Konnte die DDL nicht erzeugen
DatabaseExplorerDialog.NoConnectionsKnown.Title=Keine Verbindungen bekannt
DatabaseExplorerDialog.NoConnectionsKnown.Message=Derzeit sind keine weiteren Verbindungen bekannt, für die die DDL generiert werden können.
#
# Enter Condition Dialog
#
EnterConditionDialog.Title=Bedingung eingeben
#
# Enter List Dialog
#
EnterListDialog.Title=Liste eingeben
EnterListDialog.AvailableItems.Label=Verf\u00FCgbare Eintr\u00E4ge\:
EnterListDialog.AddOne.Tooltip=Links ausgewählte Einträge rechts hinzufügen
EnterListDialog.AddAll.Tooltip=Alle linken Einträge rechts hinzufügen
EnterListDialog.RemoveOne.Tooltip=Rechts ausgewählte Einträge dort entfernen
EnterListDialog.RemoveAll.Tooltip=Alle Einträge rechts entfernen
EnterListDialog.Selection.Label=Ihre Auswahl\:
#
# Enter Mapping Dialog
#
EnterMappingDialog.Title=Zuordnung eingeben
EnterMappingDialog.SourceFields.Label=Quellfelder\:
EnterMappingDialog.AutoTargetSelection.Label=Automatische Zielselektion?
EnterMappingDialog.HideUsedSources=Zugeordnete Quellfelder verbergen?
EnterMappingDialog.TargetFields.Label=Zielfelder\:
EnterMappingDialog.AutoSourceSelection.Label=Automatische Quellselektion?
EnterMappingDialog.HideUsedTargets=Zugeordnete Zielfelder verbergen?
EnterMappingDialog.Button.Add= &Hinzuf\u00FCgen
EnterMappingDialog.Button.Delete= &Entfernen
EnterMappingDialog.ResultMappings.Label=Zuordnungen\:
EnterMappingDialog.Button.Guess= &Raten
#
# Enter Options Dialog
#
EnterOptionsDialog.Title=Kettle Optionen
EnterOptionsDialog.General.Label=Allgemein
EnterOptionsDialog.MaximumUndo.Label=Maximale Anzahl von Undo-Schritten\:
EnterOptionsDialog.DefaultPreviewSize.Label=Standard-Zeilenanzahl bei Vorschau-Dialog\:
EnterOptionsDialog.ShowTipsStartup.Label=Tips nach Start anzeigen?
EnterOptionsDialog.ShowWelcomePage.Label=Willkommenseite nach Start anzeigen?
EnterOptionsDialog.UseDatabaseCache.Label=Datenbank-Cache benutzen?
EnterOptionsDialog.OpenLastFileStartup.Label=Zuletzt ge\u00F6ffnete Datei bei Neustart laden?
EnterOptionsDialog.AutoSave.Label=Ge\u00E4nderte Dateien automatisch speichern?
EnterOptionsDialog.OnlySaveUsedConnections.Label=Nur benutzte DB-Verbindungen in XML speichern?
EnterOptionsDialog.ReplaceDBAsk.Label=Nachfrage beim Ersetzen von DB-Verbindungen?
EnterOptionsDialog.ReplaceDBAsk.Tooltip=Wenn beim \u00D6ffnen oder dem Import von Transformationen DB-Verbindungen erstellt werden, die den gleichen Namen haben wie bestehende,\nkann ein Dialog angezeigt werden was in diesem Fall zu tun ist (wenn diese Option aktiviert ist).
EnterOptionsDialog.ReplaceDB.Label=DB-Verbindungen beim \u00D6ffnen/Import ersetzen?
EnterOptionsDialog.ReplaceDB.Tooltip=Wenn diese Option aktiviert ist, werden existierende DB-Verbindungen beim \u00D6ffnen oder dem Import von Transformationen ersetzt.\nOb dazu ein Best\u00E4tigungsdialog angezeigt wird, entscheidet die obere Option.
EnterOptionsDialog.ShowSaveConfirmation.Label="Speichern"-Best\u00E4tigungs-Dialog anzeigen?
EnterOptionsDialog.AutoSplitHops.Label=Verbinder automatisch trennen?
EnterOptionsDialog.AutoSplitHops.Tooltip=Wenn ein Schritt auf einen Verbinder gezogen wird, kann der Verbinder geteilt werden,\nso dass der neue Schritt zwischen den beiden urspr\u00FCnglichen Schritten steht.\nWenn Sie diese Option aktivieren, geschieht das automatisch, ansonsten wird ein Best\u00E4tigungsdialog angezeigt.
EnterOptionsDialog.CopyOrDistributeDialog.Label="Kopieren oder Verteilen"-Dialog anzeigen?
EnterOptionsDialog.CopyOrDistributeDialog.Tooltip=Wenn diese Option aktiviert ist und ein Schritt gerade mehr als einen anderen Schritt mit Daten beliefern soll,\nwird in einem Dialog abgefragt, ob die Daten auf die Schritte verteilt werden sollen, oder jeder\nSchritt alle Daten bekommt (Kopieren). Ist diese Option nicht aktiviert werden die Daten als Voreinstellung kopiert.
EnterOptionsDialog.ShowRepoDialog.Label=Repository-Dialog zum Start anzeigen?
EnterOptionsDialog.AskOnExit.Label=Bei Programmende nachfragen?
EnterOptionsDialog.ClearCustomParameters.Label=Benutzervariablen in Schritten / Plugins l\u00F6schen\:
EnterOptionsDialog.ClearCustomParameters.Tooltip=Löscht alle benutzerdefinierten Parameter und Markierungen in den Dialogen der Schritte und Plugins
EnterOptionsDialog.ClearCustomParameters.Title=Frage
EnterOptionsDialog.ClearCustomParameters.Question=Wollen Sie wirklich alle benutzerdefinierten Parameter und Markierungen in den Dialogen der Schritte und Plugins löschen?
EnterOptionsDialog.ClearCustomParameters.Confirmation=Die benutzerdefinierten Parameter und Markierungen wurden gelöscht.
EnterOptionsDialog.LookAndFeel.Label=Aussehen und Bedienung
EnterOptionsDialog.FixedWidthFont.Label=Schriftart mit fixierter Breite\:
EnterOptionsDialog.Button.Reset=Standard
EnterOptionsDialog.Button.Reset.Tooltip=Stellt den Standard-Wert für diese Option wieder her
EnterOptionsDialog.Button.Edit=Ändern
EnterOptionsDialog.Button.Edit.Tooltip=Ändert den Wert dieser Option
EnterOptionsDialog.GraphFont.Label=Schriftart des Arbeitsbereiches\:
EnterOptionsDialog.NoteFont.Label=Schriftart f\u00FCr Notizen\:
EnterOptionsDialog.BackgroundColor.Label=Hintergrundfarbe\:
EnterOptionsDialog.BackgroundColorGraph.Label=Hintergrundfarbe des Arbeitsbereiches\:
EnterOptionsDialog.TabColor.Label=Farben der Reiter\:
EnterOptionsDialog.IconSize.Label=Gr\u00F6\u00DFe der Symbole im Arbeitsbereich\:
EnterOptionsDialog.LineWidth.Label=Liniendicke der Verbindern\:
EnterOptionsDialog.ShadowSize.Label=Schattierungsst\u00E4rke im Arbeitsbereich\:
EnterOptionsDialog.DialogMiddlePercentage.Label=Mittelachse f\u00FCr Ausrichtung in Dialogen (in %)\:
EnterOptionsDialog.CanvasAntiAliasing.Label=Anti-Aliasing bei R\u00E4ndern?
EnterOptionsDialog.UseOSLook.Label=Layout des Betriebssystems verwenden?
EnterOptionsDialog.DefaultLocale.Label=Bevorzugte Sprache\:
EnterOptionsDialog.FailoverLocale.Label=Alternative Sprache\:
#
# Enter Print Dialog
#
EnterPrintDialog.Title=Seiten drucken
EnterPrintDialog.PrintArea.Label=Druckbereich\:
EnterPrintDialog.Rows.Label=Zeilen\:
EnterPrintDialog.Cols.Label=Spalten\:
EnterPrintDialog.Scaling.Label=Skalierung (10-100%)\:
EnterPrintDialog.LeftMargin.Label=Linker Rand (inch)\:
EnterPrintDialog.RightMargin.Label=Rechter Rand (inch)\:
EnterPrintDialog.TopMargin.Label=Oberer Rand (inch)\:
EnterPrintDialog.BottomMargin.Label=Unterer Rand (inch)\:
#
# EnterSearchDialog
#
EnterSearchDialog.Shell.Title = Meta Daten suchen
EnterSearchDialog.Step.Label = Schritte suchen
EnterSearchDialog.Step.Tooltip = Schritte suchen
EnterSearchDialog.DB.Label = Datenbankverbindungen suchen
EnterSearchDialog.DB.Tooltip = Datenbankverbindungen suchen
EnterSearchDialog.Note.Label = Notizen suchen
EnterSearchDialog.Note.Tooltip = Notizen suchen
EnterSearchDialog.FilterSelection.Label = Suchbegriff
#
# Enter Strings Dialog
#
EnterStringsDialog.Title=String-Werte eingeben
EnterStringsDialog.Message=Geben Sie hier Werte für die unten aufgelisteten Strings ein:
EnterStringsDialog.StringName.Label=Name
EnterStringsDialog.StringValue.Label=Wert
#
# Enter Value Dialog
#
EnterValueDialog.Title=Wert eingeben
EnterValueDialog.Type.Label=Typ\:
EnterValueDialog.Value.Label=Wert\:
EnterValueDialog.ConversionFormat.Label=Format f\u00FCr Konvertierung\:
EnterValueDialog.Length.Label=L\u00E4nge\:
EnterValueDialog.Precision.Label=Pr\u00E4zision\:
EnterValueDialog.TestResult.Title=Wert
EnterValueDialog.TestResult.Message=Der resultierende Wert ist\:\n\n{0}
#
# Error Dialog
#
ErrorDialog.ShowDetails.Title=Fehler-Details
ErrorDialog.ShowDetails.Message=Fehlerdetails und der Stacktrace einer ggf. aufgetretenen Ausnahme
#
# Get DatabaseInfo Progress Dialog
#
GetDatabaseInfoProgressDialog.Error.Title=Fehler beim Lesen der Informationen
GetDatabaseInfoProgressDialog.Error.Message=Beim Lesen der Informationen aus der Datenbank trat ein Fehler auf!
#
# Get PreviewTable Progress Dialog
#
GetPreviewTableProgressDialog.Error.Title=Fehler beim Lesen der Informationen
GetPreviewTableProgressDialog.Error.Message=Beim Lesen der Informationen aus der Datenbank trat ein Fehler auf!
#
# Get QueryFields Progress Dialog
#
GetQueryFieldsProgressDialog.Error.Title=Fehler beim Lesen der Informationen
GetQueryFieldsProgressDialog.Error.Message=Beim Lesen der Informationen aus der Datenbank trat ein Fehler auf!
#
# Get TableSize Progress Dialog
#
GetTableSizeProgressDialog.Error.Title=Fehler beim Lesen der Informationen
GetTableSizeProgressDialog.Error.Message=Beim Lesen der Informationen aus der Datenbank trat ein Fehler auf!
#
# Preview Rows Dialog
#
PreviewRowsDialog.Title=Daten in Voransicht ansehen
PreviewRowsDialog.Header=Zeilen des Schrittes: {0}
PreviewRowsDialog.NoRows.Message=Leider keine Zeilen für Voransicht gefunden.
PreviewRowsDialog.NoRows.Text=Sorry
PreviewRowsDialog.Button.ShowLog=Log anzeigen
PreviewRowsDialog.ShowLogging.Title=Logansicht
PreviewRowsDialog.ShowLogging.Message=Die Logausschriften
#
# Select Row Dialog
#
SelectRowDialog.Title=Eintrag auswählen
#
# Show Image Dialog
#
ShowImageDialog.Title=Anzeige einer Graphik
#
# SQL Editor
#
SQLEditor.Title=Einfacher SQL Editor
SQLEditor.Editor.Label=SQL-Anweisungen, separiert durch Semikolon '';''
SQLEditor.LineNr.Label=Zeile {0}
SQLEditor.Button.Execute= &Ausf\u00FChren
SQLEditor.Button.ClearCache= Cache &leeren
SQLEditor.Button.ClearCache.Tooltip=Benutzen Sie diesen Button, wenn die Resultate der SQL-Anweisungen den aktuellen Datenbankinhalten wiedersprechen.\nDer benutzte Cache kann invalid werden, wenn Sie noch andere Werkzeuge verwenden, um die Datenbank zu ver\u00E4ndern.
SQLEditor.ClearWholeCache.Title=Gesamten Cache löschen?
SQLEditor.ClearWholeCache.Message=Wollen Sie den gesamten Cache der Datenbank l\u00F6schen?\nWenn Sie ''Nein'' w\u00E4hlen, wird nur der Cache dieser DB-Verbindung ({0}) gel\u00F6scht.
SQLEditor.ConnectionCacheCleared.Title=Cache geleert
SQLEditor.ConnectionCacheCleared.Message=Der Cache der DB-Verbindung ''{0}'' wurde geleert
SQLEditor.WholeCacheCleared.Title=Cache geleert
SQLEditor.WholeCacheCleared.Message=Der gesamte Datenbank-Cache wurde geleert
SQLEditor.ResultRows.Title=SQL-Anweisung Nummer {0}
SQLEditor.NoRows.Title=Kein Ergebnis
SQLEditor.NoRows.Message=F\u00FCr diese Anweisung wurden keine Ergebnisse gefunden\:\n\n{0}
SQLEditor.ErrorExecSQL.Title=Fehler bei Ausführung
SQLEditor.ErrorExecSQL.Message=Ein Fehler trat bei der Ausf\u00FChrung dieser SQL-Anweisung auf\:\n\n{0}
SQLEditor.Log.SQLExecuted=SQL ausfgef\u00FChrt\: {0}\n
SQLEditor.Log.SQLExecError=Fehler bei der Ausf\u00FChrung\: {0}\n{1}
SQLEditor.Log.StatsExecuted={0} SQL-Anweisung(en) ausgeführt
SQLEditor.Log.OnPartition=auf Partition ''{0}''
SQLEditor.Error.CouldNotConnect.Title=Verbindung nicht erfolgreich
SQLEditor.Error.CouldNotConnect.Message=Verbindung zur Datenbank konnte nicht hergestellt werden.\nBitte Verbindung [{0}] \u00FCberpr\u00FCfen\n{1}
SQLEditor.Result.Title=Ergebnis der SQL-Anweisungen
SQLEditor.Result.Message=Die SQL-Anweisungen führten zu folgenden Ergebnissen
#
# SQL Statement dialog
#
SQLStatementDialog.Title=Die auszuführenden SQL-Anweisungen
SQLStatementDialog.TableCol.Stepname=Schrittname
SQLStatementDialog.TableCol.Connection=Verbindung
SQLStatementDialog.TableCol.SQL=SQL
SQLStatementDialog.TableCol.Error=Fehler
SQLStatementDialog.Button.ViewSQL= SQL &zeigen
SQLStatementDialog.Button.ExecSQL= SQL &Ausführen
SQLStatementDialog.Button.EditStep= Schritt &editieren
SQLStatementDialog.Log.Step=-- Schritt \: {0}\n
SQLStatementDialog.Log.Connection=-- Datenbank-Verbindung \: {0}\n
SQLStatementDialog.Log.Undefined=<nicht definiert>
SQLStatementDialog.Log.Error=-- Fehlernachricht \: {0}\n
SQLStatementDialog.ViewSQL.Title=SQL-Anweisungen
SQLStatementDialog.ViewSQL.Message=SQL-Anweisungen:
SQLStatementDialog.Error.Title=Fehler
SQLStatementDialog.Error.CouldNotExec=Die folgende SQL-Anweisung konnte nicht ausgef\u00FChrt werden\:\n{0}
SQLStatementDialog.Error.CouldNotConnect=Es konnte keine Verbindung zur Datenbank [{0}] hergestellt werden
SQLStatementDialog.Success.Title=Erfolg
SQLStatementDialog.Success.Message={0} SQL-Anweisung(en) wurde(n) erfolgreich ausgeführt
SQLStatementDialog.Error.Message=Die SQL-Anweisungen können nicht ausgeführt werden, {0} sind/ist fehlerhaft.
#
# Step fields dialog
#
StepFieldsDialog.Title=Schrittfelder und ihre Herkunft
StepFieldsDialog.Name.Label=Schrittname\:
StepFieldsDialog.Fields.Label=Felder\:
StepFieldsDialog.TableCol.Fieldname=Feldname
StepFieldsDialog.TableCol.Type=Typ
StepFieldsDialog.TableCol.Length=Länge
StepFieldsDialog.TableCol.Precision=Genauigkeit
StepFieldsDialog.TableCol.Origin=Herkunftsschritt
StepFieldsDialog.Buttons.EditOrigin=&Originalschritt bearbeiten

View File

@ -0,0 +1,346 @@
#File generated by Hitachi Vantara Translator for package 'org.pentaho.di.ui.core.database.dialog' in locale 'en_US'
CheckResultDialog.Button.EditOriginStep=Edit origin step
CheckResultDialog.Button.ViewMessage=View message
CheckResultDialog.HideSuccessful.Label=Hide &successful results
CheckResultDialog.Remark.Label=Remark
CheckResultDialog.Remarks.Label=Remarks:
CheckResultDialog.Result.Label=Result
CheckResultDialog.ShowSuccessful.Label=Show &successful results
CheckResultDialog.Stepname.Label=Stepname
CheckResultDialog.TextDialog.Subtitle=Message:
CheckResultDialog.TextDialog.SubtitlePlural=Messages:
CheckResultDialog.TextDialog.Title=View message
CheckResultDialog.Title=Results of transformation checks
#Wed Sep 02 18:46:59 CEST 2009
CheckResultDialog.WarningsErrors.Label=Warnings and errors:
ConditionDialog.Title=Enter Condition
DatabaseDialog.AdvancedTab.title=Advanced
DatabaseDialog.ClusterTab.title=Cluster
DatabaseDialog.ClusterTab.tooltip=Optional clustering information
DatabaseDialog.ConnectionReport.description=Here is the connection report
DatabaseDialog.ConnectionReport.title=Connection report
DatabaseDialog.DatabaseConnectionTest.title=Database Connection Test
DatabaseDialog.DatabaseConnectionTestSuccess.title=Connection tested successfully
DatabaseDialog.DbTab.title=General
DatabaseDialog.ErrorConnectionInfo.description=Unable to get the connection information
DatabaseDialog.ErrorConnectionInfo.title=Error
DatabaseDialog.ErrorHelpText.description=Unable to get the help text. Please make sure all required parameters are entered correctly!
DatabaseDialog.ErrorHelpText.title=Error!
DatabaseDialog.ErrorParameters.description=Please make sure all required parameters are entered correctly!
DatabaseDialog.ErrorParameters.title=Error!
DatabaseDialog.ErrorParameters2.description=Please make sure all required parameters are entered correctly:\n{0}
DatabaseDialog.ErrorParameters2.title=Error!
DatabaseDialog.Exception.IncorrectParameter=Incorrect database parameter(s)! Check these settings :
DatabaseDialog.ExplorerNotImplemented.Message=Sorry, the explorer for this database was not yet implemented.
DatabaseDialog.ExplorerNotImplemented.Title=Sorry
DatabaseDialog.FeatureList.title=Feature list
DatabaseDialog.FeatureList.title2="The list of features:"
DatabaseDialog.FeatureListError.description=Unable to get feature list. Please make sure all required parameters are entered correctly!
DatabaseDialog.FeatureListError.title=Error!
DatabaseDialog.GenericTab.title=Generic
DatabaseDialog.GenericTab.tooltip=Settings in case you want to use a generic database with a non-supported JDBC driver
DatabaseDialog.HelpText.description=This is the help text for [{0}] :
DatabaseDialog.HelpText.title=Options help text
DatabaseDialog.IfxTab.title=Informix
DatabaseDialog.JDBCOptions.Tab={0}: JDBC options help
DatabaseDialog.MSSQLTab.title=SQL Server
DatabaseDialog.MySQLTab.title=MySQL
DatabaseDialog.OracleTab.title=Oracle
DatabaseDialog.PoolTab.title=Pooling
DatabaseDialog.SQLTab.title=SQL
DatabaseDialog.SQLTab.tooltip=Specify the SQL to execute after connecting
DatabaseDialog.Shell.title=Connection information
DatabaseDialog.button.Explore=Explore
DatabaseDialog.button.FeatureList=Feature List
DatabaseDialog.button.ShowHelp=Show help text on option usage
DatabaseDialog.button.Test=Test
DatabaseDialog.column.DatabaseName=Database name
DatabaseDialog.column.DbType=Database Type
DatabaseDialog.column.Hostname=Hostname
DatabaseDialog.column.Parameter=Parameter
DatabaseDialog.column.PartitionId=Partition ID
DatabaseDialog.column.Password=Password
DatabaseDialog.column.PoolDefault=Default value
DatabaseDialog.column.PoolDescription=Parameter description
DatabaseDialog.column.PoolParameter=Pool parameter
DatabaseDialog.column.PoolValue=Value
DatabaseDialog.column.Port=Port
DatabaseDialog.column.SelectPoolParameter=Select the pool parameter to set
DatabaseDialog.column.Username=Username
DatabaseDialog.column.Value=Value
DatabaseDialog.label.AccessMethod=Method of access
DatabaseDialog.label.AdvancedForceIdentifiersLowerCase=Force all identifiers to lower case
DatabaseDialog.label.AdvancedForceIdentifiersUpperCase=Force all identifiers to upper case
DatabaseDialog.label.AdvancedQuoteAllFields=Quote all identifiers in database
DatabaseDialog.label.ConnectionName=Connection name
DatabaseDialog.label.ConnectionType=Connection type
DatabaseDialog.label.DatabaseName=Database name
DatabaseDialog.label.DriverClass=Driver class
DatabaseDialog.label.InformixServername=Informix Servername
DatabaseDialog.label.InitialPoolSize=The initial pool size
DatabaseDialog.label.Language=Language
DatabaseDialog.label.MaximumPoolSize=The maximum pool size
DatabaseDialog.label.MySQLStreamResults=Use result streaming (cursor emulation)
DatabaseDialog.label.Options=Options
DatabaseDialog.label.Password=Password
DatabaseDialog.label.PoolParameters=Connection Pooling parameters
DatabaseDialog.label.PortNumber=Port number
DatabaseDialog.label.PreferredSchemaName=The preferred schema name. Is used when no other schema is specified.
DatabaseDialog.label.SQLServerInstance=SQL Server instance name
DatabaseDialog.label.Sap=SAP ERP
DatabaseDialog.label.SapClient=SAP Client
DatabaseDialog.label.ServerHostname=Server host name
DatabaseDialog.label.Statements=The statements to execute right after connecting (separated by ;)
DatabaseDialog.label.SystemNumber=System Number
DatabaseDialog.label.TablespaceForData=Tablespace for data
DatabaseDialog.label.TablespaceForIndexes=Tablespace for indexes
DatabaseDialog.label.Url=URL
DatabaseDialog.label.UseClustering=Use clustering?
DatabaseDialog.label.UseConnectionPool=Use a connection pool
DatabaseDialog.label.UseDoubleDecimalSeparator=Use .. to separate schema and table
DatabaseDialog.label.Username=Username
DatabaseDialog.tooltip.DbType=The extra parameters to set in the URL to connectect to the database
DatabaseDialog.tooltip.Hostname=The values to set for the parameters
DatabaseDialog.tooltip.Options=Extra options to set in the URL
DatabaseDialog.tooltip.Parameter=The values to set for the parameters
DatabaseDialog.tooltip.PartitionId=The extra parameters to set in the URL to connect to the database
DatabaseDialog.tooltip.UseClustering=Enable clustering to add all kinds of clustering information.
DatabaseDialog.DatabaseNameExists.Title=Database Connection Exists
DatabaseDialog.DatabaseNameExists=Database Connection {0} already exists.
DatabaseExplorer.Actions=Actions
DatabaseExplorer.Button.Cancel=&Cancel
DatabaseExplorer.Button.Ok=&OK
DatabaseExplorer.DDL=DDL
DatabaseExplorer.DataProfile=Data Profile
DatabaseExplorer.Preview100=Preview first 100
DatabaseExplorer.PreviewX=Preview x Rows
DatabaseExplorer.RowCount=Row Count
DatabaseExplorer.SelectConnection=Select Connection
DatabaseExplorer.ShowLayout=Show Layout
DatabaseExplorer.Title=Database Explorer
DatabaseExplorer.Truncate=Truncate Table
DatabaseExplorer.UseCurrent=Use Current Connection
DatabaseExplorer.ViewSQL=View SQL
DatabaseExplorerDialog.Catalogs.Label=Catalogs
DatabaseExplorerDialog.Error.GenDDL=Couldn''t generate the DDL
DatabaseExplorerDialog.Error.RetrieveLayout=Couldn''t retrieve the table layout.
DatabaseExplorerDialog.Menu.DisplayColumns=Display columns
DatabaseExplorerDialog.Menu.GenDDL=Generate DDL
DatabaseExplorerDialog.Menu.GenDDLOtherConn=Generate DDL for other connection
DatabaseExplorerDialog.Menu.OpenSQL=Open SQL for [{0}]
DatabaseExplorerDialog.Menu.Preview100=&Preview first 100 rows of [{0}]
DatabaseExplorerDialog.Menu.PreviewN=&Preview first ... rows of [{0}]
DatabaseExplorerDialog.Menu.ProfileTable=Data profile ''{0}''
DatabaseExplorerDialog.Menu.ShowLayout=Show layout of [{0}]
DatabaseExplorerDialog.Menu.ShowSize=Number of rows of [{0}]
DatabaseExplorerDialog.Menu.Truncate=Truncate table [{0}]
DatabaseExplorerDialog.NoConnectionsKnown.Message=At this point no other connections are available to generate the DDL for.
DatabaseExplorerDialog.NoConnectionsKnown.Title=No connections known
DatabaseExplorerDialog.NoRows.Message=The table contains no rows
DatabaseExplorerDialog.NoRows.Title=No rows
DatabaseExplorerDialog.PreviewTable.Message=Number of lines to preview (0 means all lines)
DatabaseExplorerDialog.PreviewTable.Title=Preview limit
DatabaseExplorerDialog.Procedures.Label=Procedures
DatabaseExplorerDialog.Schemas.Label=Schemas
DatabaseExplorerDialog.Synonyms.Label=Synonyms
DatabaseExplorerDialog.TableSize.Message=Table ''{0}'' contains {1} rows
DatabaseExplorerDialog.TableSize.Title=Number of rows
DatabaseExplorerDialog.Tables.Label=Tables
DatabaseExplorerDialog.TargetDatabase.Message=Select the target database:
DatabaseExplorerDialog.TargetDatabase.Title=Target database
DatabaseExplorerDialog.Title=Database explorer on connection [{0}]
DatabaseExplorerDialog.UnexpectedProfilingError.Message=There was an unexpected profiling error:
DatabaseExplorerDialog.UnexpectedProfilingError.Title=Profiling error
DatabaseExplorerDialog.Views.Label=Views
Dialog.Error.EnterInteger=Please enter an integer number!
Dialog.Error.Header=Error
EnterConditionDialog.Title=Enter condition
EnterListDialog.AddAll.Tooltip=Add all items on the left
EnterListDialog.AddOne.Tooltip=Add the selected items on the left
EnterListDialog.AvailableItems.Label=Available items:
EnterListDialog.RemoveAll.Tooltip=Add all items on the right
EnterListDialog.RemoveOne.Tooltip=Remove the selected items on the right
EnterListDialog.Selection.Label=Your selection:
EnterListDialog.Title=Enter list
EnterMappingDialog.AutoSourceSelection.Label=Auto source selection?
EnterMappingDialog.AutoTargetSelection.Label=Auto target selection?
EnterMappingDialog.Button.Add=&Add
EnterMappingDialog.Button.Delete=&Delete
EnterMappingDialog.Button.Guess=&Guess
EnterMappingDialog.HideUsedSources=Hide assigned source fields?
EnterMappingDialog.HideUsedTargets=Hide assigned target fields?
EnterMappingDialog.ResultMappings.Label=Mappings:
EnterMappingDialog.SourceFields.Label=Source fields:
EnterMappingDialog.TargetFields.Label=Target fields:
EnterMappingDialog.Title=Enter Mapping
EnterOptionsDialog.AskOnExit.Label=Ask user when exiting:
EnterOptionsDialog.AutoSave.Label=Autosave changed files:
EnterOptionsDialog.AutoSplitHops.Label=Automatically split hops:
EnterOptionsDialog.AutoSplitHops.Tooltip=If a step is drawn on a hop the hop can be split\nso that the new step lays between the two original ones.\nIf you activate this option this will happen automatically, otherwise a confirmation dialog is shown.
EnterOptionsDialog.BackgroundColor.Label=Background color:
EnterOptionsDialog.BackgroundColorGraph.Label=Workspace background color:
EnterOptionsDialog.Branding.Label=Show branding graphics:
EnterOptionsDialog.Button.Edit=Change
EnterOptionsDialog.Button.Edit.Tooltip=Edits the option
EnterOptionsDialog.Button.Reset=Reset
EnterOptionsDialog.Button.Reset.Tooltip=Resets this option to the default value
EnterOptionsDialog.CanvasAntiAliasing.Label=Canvas anti-aliasing:
EnterOptionsDialog.ClearCustomParameters.Confirmation=The custom flags and parameters have been deleted.
EnterOptionsDialog.ClearCustomParameters.Label=Clear custom parameters (steps/plugins):
EnterOptionsDialog.ClearCustomParameters.Question=Do you really want to delete all custom flags and parameters in the dialogs of the steps and plugins?
EnterOptionsDialog.ClearCustomParameters.Title=Question
EnterOptionsDialog.ClearCustomParameters.Tooltip=Deletes all custom flags and parameters in the dialogs of the steps and plugins
EnterOptionsDialog.CopyOrDistributeDialog.Label=Show Copy or Distribute dialog:
EnterOptionsDialog.CopyOrDistributeDialog.Tooltip=If this option is activated and a step is about to deliver data to more than one step, a dialog asks the user whether the data\nget distributed to each receiving step or if each receiving step gets the same data (copying).\nIf this option is not activated the default is to copy the data.
EnterOptionsDialog.DefaultLocale.Label=Preferred Language:
EnterOptionsDialog.DefaultPreviewSize.Label=Preview data batch size:
EnterOptionsDialog.DialogMiddlePercentage.Label=Dialog middle percentage:
EnterOptionsDialog.EnableAutoCollapseCoreObjectTree.Label=Auto collapse palette tree:
EnterOptionsDialog.FailoverLocale.Label=Alternative Language:
EnterOptionsDialog.FixedWidthFont.Label=Fixed width font:
EnterOptionsDialog.General.Label=General
EnterOptionsDialog.GraphFont.Label=Font on workspace:
EnterOptionsDialog.GridSize.Label=Canvas Grid Size:
EnterOptionsDialog.GridSize.ToolTip=Make the icons snap to a grid allowing you to align the steps more easily.
EnterOptionsDialog.ShowCanvasGrid.Label=Show Canvas Grid:
EnterOptionsDialog.ShowCanvasGrid.ToolTip=If enabled, the canvas grid will be visible
EnterOptionsDialog.HelpToolTipsEnabled.Label=Show help tooltips:
EnterOptionsDialog.EnableSVG.Label=Enable .svg icons
EnterOptionsDialog.IconSize.Label=Icon size in workspace:
EnterOptionsDialog.LineWidth.Label=Line width on workspace:
EnterOptionsDialog.LookAndFeel.Label=Look && Feel
EnterOptionsDialog.MaxLogLineTimeout.Label=Central log line store timeout in minutes:
EnterOptionsDialog.MaxNrHistLinesSize.Label=Max number of lines in the log history views:
EnterOptionsDialog.MaxNrLogLinesSize.Label=Max number of lines in the logging windows:
EnterOptionsDialog.MaximumUndo.Label=Maximum Undo level:
EnterOptionsDialog.NoteFont.Label=Font for notes:
EnterOptionsDialog.OnlyActiveFile.Label=Only show the active file in the main tree:
EnterOptionsDialog.OnlySaveUsedConnections.Label=Only save used connections to XML:
EnterOptionsDialog.OpenLastFileStartup.Label=Open last file at startup:
EnterOptionsDialog.ReplaceDB.Label=Replace existing objects on open/import:
EnterOptionsDialog.ReplaceDB.Tooltip=Replace existing objects (database connections, slave servers, cluster schemas, and/or partition schemas) when opening or importing transformations.
EnterOptionsDialog.ReplaceDBAsk.Label=Ask before replacing objects:
EnterOptionsDialog.ReplaceDBAsk.Tooltip=Ask before replacing existing objects when opening or importing transformations.
EnterOptionsDialog.ShadowSize.Label=Shadow size on workspace:
EnterOptionsDialog.ShowRepoDialog.Label=Show repository dialog at startup:
EnterOptionsDialog.ShowSaveConfirmation.Label=Show Save dialog:
EnterOptionsDialog.ShowTipsStartup.Label=Show tips at startup:
EnterOptionsDialog.ShowWelcomePage.Label=Show welcome page at startup:
EnterOptionsDialog.TabColor.Label=Tab color:
EnterOptionsDialog.Title=Kettle Options
EnterOptionsDialog.ToolTipsEnabled.Label=Display tooltips:
EnterOptionsDialog.UseDatabaseCache.Label=Use database cache:
EnterOptionsDialog.UseOSLook.Label=Use look of OS:
EnterOptionsDialog.VersionCheck.Label=Skip check for updates?
EnterOptionsDialog.CanvasIndicateSlowSteps.Label=Show bottleneck transformation steps:
EnterOptionsDialog.CanvasIndicateSlowSteps.Tooltip=If enabled, draws an animated border inside transformation steps that receive input rows faster than they can process them (bottleneck steps).
EnterPrintDialog.BottomMargin.Label=Bottom margin (inch):
EnterPrintDialog.Cols.Label=Columns:
EnterPrintDialog.LeftMargin.Label=Left margin (inch):
EnterPrintDialog.PrintArea.Label=Printing area:
EnterPrintDialog.RightMargin.Label=Right margin (inch):
EnterPrintDialog.Rows.Label=Rows:
EnterPrintDialog.Scaling.Label=Scaling (10-100%):
EnterPrintDialog.Title=Print pages
EnterPrintDialog.TopMargin.Label=Top margin (inch):
EnterSearchDialog.DB.Label=Search database connections
EnterSearchDialog.DB.Tooltip=Search database connections
EnterSearchDialog.FilterSelection.Label=Filter
EnterSearchDialog.Note.Label=Search notes
EnterSearchDialog.Note.Tooltip=Search notes
EnterSearchDialog.Shell.Title=Search Meta Data
EnterSearchDialog.Step.Label=Search steps
EnterSearchDialog.Step.Tooltip=Search steps
EnterStringsDialog.Message=Enter values for the Strings specified below:
EnterStringsDialog.StringName.Label=Name
EnterStringsDialog.StringValue.Label=Value
EnterStringsDialog.Title=Enter string values
EnterValueDialog.ConversionFormat.Label=Conversion format:
EnterValueDialog.Length.Label=Length:
EnterValueDialog.Precision.Label=Precision:
EnterValueDialog.TestResult.Message=The resulting value is:\n\n{0}
EnterValueDialog.TestResult.Title=Value
EnterValueDialog.Title=Enter value
EnterValueDialog.Type.Label=Type:
EnterValueDialog.Value.Label=Value:
ErrorDialog.ShowDetails.Message=Error Details and the stacktrace of a possibly exception
ErrorDialog.ShowDetails.Title=Error Details
GetDatabaseInfoProgressDialog.Error.GettingInfoTable=Problem encountered getting information from the database: {0}
GetDatabaseInfoProgressDialog.Error.Message=An error occured getting information from the database!
GetDatabaseInfoProgressDialog.Error.Title=Error getting information
GetPreviewTableProgressDialog.Error.Message=An error occured getting information from the database!
GetPreviewTableProgressDialog.Error.Title=Error getting information
GetQueryFieldsProgressDialog.Error.Message=An error occured getting information from the database!
GetQueryFieldsProgressDialog.Error.Title=Error getting information
GetTableSizeProgressDialog.Error.Message=An error occured getting information from the database!
GetTableSizeProgressDialog.Error.Title=Error getting information
SQLEditor.Button.ClearCache=&Clear cache
SQLEditor.Button.ClearCache.Tooltip=Use this button if you find that the results above do not correspond with the actual situation in the database.\nThe database cache becomes invalid if you use other tools besides Kettle to create or alter tables in the database.
SQLEditor.Button.Execute=&Execute
SQLEditor.ClearWholeCache.Message=Do you want to clear the complete cache?\nIf you press ''No'' only the cache of the database connection ''{0}'' gets cleared
SQLEditor.ClearWholeCache.Title=Clear whole cache?
SQLEditor.ConnectionCacheCleared.Message=Cache of database connection ''{0}'' was cleared
SQLEditor.ConnectionCacheCleared.Title=Cache geleert
SQLEditor.Editor.Label=SQL statements, separated by semicolon '';''
SQLEditor.Error.CouldNotConnect.Message=Unable to connect to the database!\nPlease check the connection setting for connection [{0}]\n{1}
SQLEditor.Error.CouldNotConnect.Title=Could not connect
SQLEditor.ErrorExecSQL.Message=An error occured executing the following sql:\n\n{0}
SQLEditor.ErrorExecSQL.Title=Error executing SQL
SQLEditor.LineNr.Label=Line number: {0}
SQLEditor.Log.OnPartition=on partition ''{0}''
SQLEditor.Log.SQLExecError=Error while executing: {0}\n{1}
SQLEditor.Log.SQLExecuted=SQL executed: {0}\n
SQLEditor.Log.StatsExecuted={0} SQL statements executed
SQLEditor.NoRows.Message=No results found for SQL statement:\n\n{0}
SQLEditor.NoRows.Title=No result
SQLEditor.Position.Label=Line {0} column {1}
SQLEditor.Result.Message=The SQL statements had the following results
SQLEditor.Result.Title=Results of the SQL statements
SQLEditor.ResultRows.Title=SQL statement #{0}
SQLEditor.Title=Simple SQL editor
SQLEditor.WholeCacheCleared.Message=The whole database cache was cleared
SQLEditor.WholeCacheCleared.Title=Cache geleert
SQLStatementDialog.Button.EditStep=&Edit origin step
SQLStatementDialog.Button.ExecSQL=E&xecute SQL
SQLStatementDialog.Button.ViewSQL=&View SQL
SQLStatementDialog.Error.CouldNotConnect=Could not connect to database connection [{0}]
SQLStatementDialog.Error.CouldNotExec=The following statement could not be executed:\n{0}
SQLStatementDialog.Error.Message=We can''t execute the selected statetements as there are/is {0} with errors.
SQLStatementDialog.Error.Title=Error
SQLStatementDialog.Log.Connection=-- Database Connection : {0}\n
SQLStatementDialog.Log.Error=-- Error message : {0}\n
SQLStatementDialog.Log.Step=-- Step : {0}\n
SQLStatementDialog.Log.Undefined=<undefined>
SQLStatementDialog.Success.Message={0} SQL statement(s) executed successfully
SQLStatementDialog.Success.Title=Success
SQLStatementDialog.TableCol.Connection=Connection
SQLStatementDialog.TableCol.Error=Error
SQLStatementDialog.TableCol.SQL=SQL
SQLStatementDialog.TableCol.Stepname=Stepname
SQLStatementDialog.Title=List of SQL statements to execute
SQLStatementDialog.ViewSQL.Message=SQL statements:
SQLStatementDialog.ViewSQL.Title=SQL statements
SelectRowDialog.Title=Select an entry
ShowImageDialog.Title=Image display
StepFieldsDialog.Buttons.EditOrigin=&Edit origin step
StepFieldsDialog.Fields.Label=Fields:
StepFieldsDialog.Name.Label=Step name:
StepFieldsDialog.TableCol.Fieldname=Fieldname
StepFieldsDialog.TableCol.Length=Length
StepFieldsDialog.TableCol.Origin=Step origin
StepFieldsDialog.TableCol.Precision=Precision
StepFieldsDialog.TableCol.Type=Type
StepFieldsDialog.Title=Step fields and their origin
XulDatabaseDialog.Error.Dialog=General error in dialog
XulDatabaseDialog.Error.General=General error
XulDatabaseDialog.Error.HandleXul=Error working with XUL definition
XulDatabaseDialog.Error.LoadXul=Error loading XUL definition
XulDatabaseDialog.Error.ResourcesNotFound=Unable to find resource bundle for primary locale {0}, failover locale {1}
XulDatabaseDialog.Error.ResourcesNotFound.Title=String resources can't be found for dialog
XulDatabaseDialog.Error.SAXReader=Error reading XUL definition by SAX reader
XulDatabaseDialog.Error.Title=Error
tooltip_expand_collapse=Expand/Collapse Tree
tooltip_refresh=Refresh Tree
DatabaseExplorerDialog.TableLayout.ShellText=Table layout
DatabaseExplorerDialog.TableLayout.OriginText=Table

View File

@ -0,0 +1,240 @@
#File generated by Hitachi Vantara Transator for package 'org.pentaho.di.ui.core.database.dialog' in locale 'es_AR'
#Fri Dec 07 16:33:44 GMT-03:00 2007
EnterOptionsDialog.ShowSaveConfirmation.Label=\u00BFMostrar di\u00E1logo "Guardar"?
DatabaseExplorerDialog.Title=Explorador de base de datso en la conexi\u00F3n [{0}]
EnterSearchDialog.DB.Label=Buscar conexiones a Base de Datos
EnterOptionsDialog.OnlyActiveFile.Label=\u00BFS\u00F3lo mostrar el archivo activo en el \u00E1rbol principal?
EnterOptionsDialog.UseOSLook.Label=\u00BFUtilizar apariencia de SO?
EnterOptionsDialog.Button.Edit.Tooltip=Edita la opci\u00F3n
EnterOptionsDialog.DialogMiddlePercentage.Label=Porcentaje medio del di\u00E1logo\:
CheckResultDialog.Button.EditOriginStep=Editar paso origen
EnterOptionsDialog.General.Label=General\:
CheckResultDialog.Result.Label=Resultado
EnterOptionsDialog.ShowRepoDialog.Label=\u00BFMostrar di\u00E1logo de repositorio al iniciar?
EnterOptionsDialog.ClearCustomParameters.Question=\u00BFRealmente desea borrar todas las se\u00F1ales y complementos personalizados en los di\u00E1logos de los pasos y complementos?
EnterOptionsDialog.CanvasAntiAliasing.Label=\u00BFAnti alias de lienzo?
DatabaseExplorerDialog.TableSize.Message=La tabla "{0}" contiene {1} filas
EnterOptionsDialog.ReplaceDB.Label=\u00BFReemplazar las conexiones existentes al abrir/importar?
EnterMappingDialog.HideUsedSources=\u00BFEsconder campos de origen asignados?
EnterOptionsDialog.MaximumUndo.Label=M\u00E1ximo nivel de "deshacer"\:
DatabaseDialog.SQLTab.tooltip=SQL que se debe ejecutar despu\u00E9s de conectar
DatabaseDialog.column.PoolParameter=P\u00E1rametro del fondo
CheckResultDialog.TextDialog.SubtitlePlural=Mensajes\:
GetPreviewTableProgressDialog.Error.Message=\u00A1Ocurri\u00F3 un error al obtener informaci\u00F3n de la base de datos\!
SQLEditor.Button.ClearCache=&Limpiar cache
DatabaseDialog.column.PoolDefault=Valor por defecto
DatabaseDialog.ErrorParameters.title=\u00A1Error\!
DatabaseDialog.Exception.IncorrectParameter=Par\u00E1metros de base de datos incorrectos\! Comprueba esta configuraci\u00F3n \:
DatabaseDialog.ExplorerNotImplemented.Title=Disculpe
DatabaseExplorerDialog.PreviewTable.Title=L\u00EDmite de vista previa
DatabaseExplorerDialog.Tables.Label=Tablas
EnterMappingDialog.Button.Add=&Agregar
DatabaseDialog.button.Explore=\ Explorar
DatabaseDialog.tooltip.DbType=Los par\u00E1metros extra que se deben poner en la URL para conectar a la base de datos
SQLEditor.Title=Editor SQL simple
EnterOptionsDialog.OnlySaveUsedConnections.Label=\u00BFS\u00F3lo guardar conexiones utilizadas en el XML?
CheckResultDialog.TextDialog.Subtitle=Mensaje\:
DatabaseDialog.label.Username=Nombre de usuario
DatabaseDialog.column.Parameter=Par\u00E1metro
DatabaseDialog.column.Username=Nombre de usuario
DatabaseDialog.label.Sap=SAP ERP
DatabaseDialog.AdvancedTab.title=Avanzado
DatabaseDialog.label.DatabaseName=Nombre de la base de datos
GetQueryFieldsProgressDialog.Error.Title=Error al obtener informaci\u00F3n
DatabaseDialog.report.Hostname=Nombre de servidor \:
DatabaseDialog.ExplorerNotImplemented.Message=El explorador para esta base de datos no ha sido implementado a\u00FAn.
SQLEditor.Result.Title=Resultados de las sentencias SQL
DatabaseDialog.JDBCOptions.Tab={0}\: ayuda de opciones JDBC
DatabaseDialog.OracleTab.title=Oracle
EnterSearchDialog.DB.Tooltip=Buscar conexiones a Base de Datos
EnterOptionsDialog.ShowTipsStartup.Label=\u00BFMostrar consejos al iniciar?
CheckResultDialog.Button.ViewMessage=Ver mensaje
EnterOptionsDialog.ClearCustomParameters.Tooltip=Elimina todas las se\u00F1ales y par\u00E1metros personalizados en los dia\u013Aogos de los pasos y complementos
DatabaseDialog.label.UseClustering=\u00BFUsar cluster?
DatabaseDialog.label.AdvancedForceIdentifiersUpperCase=Forzar todos los identificadores a may\u00FAsculas
CheckResultDialog.Remark.Label=Observaci\u00F3n
SQLEditor.ConnectionCacheCleared.Title=Cache vaciada
EnterOptionsDialog.CopyOrDistributeDialog.Label=\u00BFMostrar el d\u00EDalogo "copiar \u00F3 distribuir"?
DatabaseExplorerDialog.NoConnectionsKnown.Title=No se conocen conexiones
CheckResultDialog.Stepname.Label=Nombre del paso
DatabaseDialog.label.PoolParameters=P\u00E1rametros del Fondo Com\u00FAn de Conexiones
DatabaseDialog.label.Language=Lenguaje
SQLEditor.WholeCacheCleared.Message=La cache de toda la base de datos fue vaciada
EnterOptionsDialog.Button.Edit=Cambiar
EnterOptionsDialog.Button.Reset.Tooltip=Restablece esta opci\u00F3n al valor por defecto
EnterSearchDialog.Step.Label=Buscar pasos
DatabaseDialog.ClusterTab.title=Cl\u00FAster
EnterSearchDialog.Shell.Title=Buscar Meta Informaci\u00F3n
EnterOptionsDialog.AutoSave.Label=\u00BFAuto guardar archivos cambiados?
EnterOptionsDialog.ClearCustomParameters.Label=Limpiar par\u00E1metros personalizados (pasos / complementos)\:
SQLEditor.Error.CouldNotConnect.Message=\u00A1No se puede conectar a la base de datos\!\nPor favor verifique las opciones de conexi\u00F3n para la conexi\u00F3n [{0}]\n{1}
DatabaseDialog.ErrorConnectionInfo.description=Informaci\u00F3n de la conexi\u00F3n no disponible.
DatabaseDialog.label.UseConnectionPool=Usar reserva de conexiones
EnterMappingDialog.AutoTargetSelection.Label=\u00BFSelecci\u00F3n autom\u00E1tica de destino?
GetTableSizeProgressDialog.Error.Message=\u00A1Ocurri\u00F3 un error al obtener informaci\u00F3n de la base de datos\!
CheckResultDialog.Remarks.Label=Observaciones\:
SQLEditor.ClearWholeCache.Message=\u00BFQuiere vaciar la cache completamente?\nSi selecciona "no" s\u00F3lo la cach\u00E9 de la conexi\u00F3n "{0}" ser\u00E1 vaciada.
DatabaseExplorerDialog.Schemas.Label=Esquemas
SQLEditor.Editor.Label=Sentencias SQL, separadas por punto y coma ";"
DatabaseExplorerDialog.Menu.Truncate=Truncar tablas [{0}]
DatabaseDialog.report.ConnectionWithPartOk=La conexi\u00F3n a la base de datos [{0}] con el id de partici\u00F3n [{1}] funciona bien.
DatabaseDialog.Shell.title=Datos de la conexi\u00F3n
DatabaseDialog.FeatureList.title=Lista de funciones
DatabaseDialog.HelpText.title=Ayuda de las opciones
EnterOptionsDialog.FailoverLocale.Label=Lenguaje Alternativo\:
DatabaseDialog.label.PortNumber=N\u00FAmero de puerto
SQLEditor.Button.Execute=&Ejecutar
EnterOptionsDialog.Button.Reset=Restablecer
DatabaseDialog.label.InformixServername=Nombre de servidor Informix
DatabaseDialog.tooltip.PartitionId=Los par\u00E1metros extra que se deben poner en la URL para conectar a la base de datos
DatabaseDialog.GenericTab.title=Gen\u00E9rico
EnterOptionsDialog.ShadowSize.Label=Tama\u00F1o de la sombra en el espacio de trabajo\:
EnterMappingDialog.SourceFields.Label=Campos de origen\:
DatabaseExplorerDialog.Error.GenDDL=No pudo generarse el DDL
EnterOptionsDialog.ShowWelcomePage.Label=\u00BFMostrar p\u00E1gina de bienvenida al iniciar?
DatabaseDialog.label.TablespaceForIndexes=Espacio de tablas para \u00EDndices
DatabaseDialog.column.Password=Contrase\u00F1a
DatabaseDialog.label.Password=Contrase\u00F1a
EnterOptionsDialog.ReplaceDB.Tooltip=Si esta opci\u00F3n est\u00E1 activada las conexiones a base de datos existentes ser\u00E1n reemplazadas al abrir \u00F3 importar transformaciones.\nEsta opci\u00F3n decide si un di\u00E1logo es mostrado para seleccionar esta opci\u00F3n o no.
DatabaseExplorerDialog.Views.Label=Vistas
GetDatabaseInfoProgressDialog.Error.Message=\u00A1Ocurri\u00F3 un error al obtener informaci\u00F3n de la base de datos\!
DatabaseExplorerDialog.NoRows.Title=No hay filas
DatabaseDialog.label.Statements=Las sentencias a ejecutar justo despu\u00E9s de conectar (separadas por ;)
CheckResultDialog.WarningsErrors.Label=Advertencias y errores\:
DatabaseExplorerDialog.TargetDatabase.Message=Seleccionar la base de datos destino
DatabaseDialog.column.Hostname=Nombre del servidor
DatabaseDialog.tooltip.UseClustering=Permitir a\u00F1adir todo tipo de informaci\u00F3n al cluster.
DatabaseDialog.report.ConnectionOk=La conexi\u00F3n a la base de datos [{0}] funciona bien.
CheckResultDialog.HideSuccessful.Label=E&sconder resultados exitosos
EnterOptionsDialog.NoteFont.Label=Fuente para notas\:
DatabaseDialog.PoolTab.title=Reserva
DatabaseDialog.label.MySQLStreamResults=Utilizar flujo de resultados (emulaci\u00F3n de cursor) DatabaseDialog.IfxTab.title\=Informix
DatabaseExplorerDialog.Menu.GenDDL=Generar DDL
SQLEditor.ResultRows.Title=Sentencia SQL \#{0}
EnterOptionsDialog.BackgroundColorGraph.Label=Color de fondo del espacio de trabajo\:
DatabaseDialog.column.PoolValue=Valor
EnterSearchDialog.Note.Tooltip=Buscar notas
EnterOptionsDialog.TabColor.Label=Color de solapas\:
EnterOptionsDialog.OpenLastFileStartup.Label=\u00BFAbrir el \u00FAltimo archivo al iniciar?
SQLEditor.ErrorExecSQL.Title=Error al ejecutar c\u00F3digo SQL
SQLEditor.NoRows.Title=No hay resultados
Dialog.Error.Header=Error
SQLEditor.LineNr.Label=N\u00FAmero de l\u00EDnea\: {0}
EnterOptionsDialog.ClearCustomParameters.Confirmation=Las se\u00F1ales y par\u00E1metros personalizados han sido eliminados.
SQLEditor.ClearWholeCache.Title=\u00BFLimpiar toda la cache?
EnterMappingDialog.HideUsedTargets=\u00BFEsconder campos destino asignados?
DatabaseDialog.report.DatabaseName=Nombre de base de datos \:
DatabaseDialog.ConnectionReport.title=Informe de conexi\u00F3n
DatabaseDialog.label.AdvancedQuoteAllFields=Poner todos los identificadores en la base de datos entre comillas
DatabaseDialog.column.Port=Puerto
DatabaseDialog.ErrorHelpText.description=Ayuda no disponible. Por favor, compruebe que todos los par\u00E1metros solicitados se han introducido correctamente.
EnterOptionsDialog.Branding.Label=Mostrar gr\u00E1ficos de marca
EnterOptionsDialog.UseDatabaseCache.Label=\u00BFUtilizar cache de base de datos?
DatabaseDialog.ConnectionReport.description=Aqu\u00ED tiene el informe de conexi\u00F3n
SQLEditor.Error.CouldNotConnect.Title=No se pudo conectar
EnterMappingDialog.AutoSourceSelection.Label=\u00BFSelecci\u00F3n autom\u00E1tica de origen?
DatabaseDialog.GenericTab.tooltip=Par\u00E1metros para usar una base de datos gen\u00E9rica que no tenga un controlador JDBC soportado
DatabaseExplorerDialog.Menu.Preview100=&Prever las primeros 100 filas de [{0}]
DatabaseDialog.ErrorParameters2.title=\u00A1Error\!
DatabaseExplorerDialog.Synonyms.Label=Sin\u00F3nimos
EnterOptionsDialog.CopyOrDistributeDialog.Tooltip=Si esta opci\u00F3n est\u00E1 activada y un paso est\u00E1 a punto de entregar datos a m\u00E1s de un paso, un di\u00E1logo solicita al usuario si los datos\n se distribuyen entre los pasos receptores \u00F3 si cada pasa recibe los mismos datos (copia).\nSi esta opci\u00F3n no es activada por defecto se copian los datos.
EnterSearchDialog.Note.Label=Buscar notas
EnterOptionsDialog.AskOnExit.Label=\u00BFPreguntar al usuario al salir?
DatabaseExplorerDialog.PreviewTable.Message=N\u00FAmero de l\u00EDneas a prever (0\=todas)
DatabaseDialog.FeatureListError.title=\u00A1Error\!
EnterOptionsDialog.FixedWidthFont.Label=Fuente de ancho variable\:
DatabaseDialog.report.ConnectionError=Error conectando a la base de datos [{0}] \:
DatabaseExplorerDialog.Menu.GenDDLOtherConn=Generar DDL para otra conexi\u00F3n
DatabaseDialog.ErrorParameters2.description=Por favor, compruebe que todos los par\u00E1metros solicitados se han introducido correctamente\:\n{0}
DatabaseExplorerDialog.NoRows.Message=La tabla no contiene filas
GetTableSizeProgressDialog.Error.Title=Error al obtener informaci\u00F3n
EnterOptionsDialog.Title=Opciones de Kettle
DatabaseDialog.column.PartitionId=Id de la partici\u00F3n
DatabaseDialog.label.ConnectionName=Nombre de la conexi\u00F3n
DatabaseDialog.ErrorParameters.description=Por favor, compruebe que todos los par\u00E1metros solicitados se han introducido correctamente.
DatabaseDialog.report.Port=Puerto \:
EnterOptionsDialog.ReplaceDBAsk.Label=\u00BFPreguntar si reemplazar conexiones existentes al abrir/importar?
DatabaseDialog.DbTab.title=General
EnterOptionsDialog.IconSize.Label=Tama\u00F1o de \u00EDconos en espacio de trabajo\:
GetPreviewTableProgressDialog.Error.Title=Error al obtener informaci\u00F3n
DatabaseExplorerDialog.Menu.ShowSize=N\u00FAmero de filas de [{0}]
DatabaseDialog.column.DatabaseName=Nombre de la base de datos
CheckResultDialog.TextDialog.Title=Ver mensajes
EnterOptionsDialog.BackgroundColor.Label=Color de fondo\:
EnterOptionsDialog.LookAndFeel.Label=Apariencia
CheckResultDialog.Title=Resultados de las verificaciones de la transformaci\u00F3n
DatabaseExplorerDialog.TargetDatabase.Title=Base de datos destino
EnterOptionsDialog.ToolTipsEnabled.Label=\u00BFMostrar cuadros de ayuda?
DatabaseDialog.column.SelectPoolParameter=Selecciona el par\u00E1metro del fondo a configurar
EnterOptionsDialog.GraphFont.Label=Fuente en el espacio de trabajo\:
EnterOptionsDialog.MaxNrLogLinesSize.Label=M\u00E1ximo n\u00FAmero de l\u00EDneas en las ventana de logueo.
EnterOptionsDialog.LineWidth.Label=Ancho de l\u00EDnea en espacio de trabajo\:
DatabaseDialog.column.Value=Valor
DatabaseDialog.SQLTab.title=SQL
DatabaseDialog.label.MaximumPoolSize=Tama\u00F1o m\u00E1ximo de la reserva
DatabaseDialog.FeatureListError.description=Lista de funciones no disponible. Por favor, compruebe que todos los par\u00E1metros solicitados se han introducido correctamente.
DatabaseDialog.HelpText.description=Esta es la ayuda para [{0}] \:
DatabaseDialog.IfxTab.title=Informix
DatabaseDialog.ErrorHelpText.title=\u00A1Error\!
EnterMappingDialog.Button.Delete=&Eliminar
DatabaseDialog.MySQLTab.title=MySQL
EnterMappingDialog.ResultMappings.Label=Mapeos\:
SQLEditor.NoRows.Message=No se encontraron resultados para la sentencia SQL\n\n{0}
DatabaseDialog.column.DbType=Tipo de base de datos
DatabaseExplorerDialog.Catalogs.Label=Cat\u00E1logos
DatabaseExplorerDialog.Menu.ShowLayout=Mostrar diagrama de [{0}]
CheckResultDialog.ShowSuccessful.Label=Mo&strar resultados exitosos
DatabaseExplorerDialog.NoConnectionsKnown.Message=En este momento no hay otras conexiones disponibles para generar DDL.
EnterMappingDialog.Title=Ingrese Mapeo
DatabaseExplorerDialog.Menu.PreviewN=&Prever primeras ... filas de [{0}]
DatabaseDialog.label.SapClient=Cliente SAP
DatabaseDialog.FeatureList.title2="La lista de funciones\:"
DatabaseDialog.tooltip.Options=Opciones extra para la URL
EnterOptionsDialog.DefaultPreviewSize.Label=N\u00FAmero de l\u00EDneas por defecto en el di\u00E1logo de vista previa\:
SQLEditor.ErrorExecSQL.Message=Ocurri\u00F3 un error al ejecutar el siguiente c\u00F3digo SQL\:\n\n{0}
DatabaseDialog.label.AdvancedForceIdentifiersLowerCase=Forzar todos los identificadores a min\u00FAsculas
DatabaseDialog.label.Url=URL
GetDatabaseInfoProgressDialog.Error.Title=Error al obtener informaci\u00F3n
DatabaseDialog.label.ConnectionType=Tipo de conexi\u00F3n
DatabaseExplorerDialog.TableSize.Title=N\u00FAmero de filas
EnterOptionsDialog.AutoSplitHops.Label=\u00BFDividir saltos autom\u00E1ticamente?
DatabaseDialog.report.ConnectionWithPartError=Error conectando a la base de datos [{0}] con el id de partici\u00F3n [{1}] \: {2}
DatabaseDialog.tooltip.Hostname=Los valores para los par\u00E1metros
DatabaseDialog.label.InitialPoolSize=Tama\u00F1o inicial de la reserva
DatabaseDialog.label.UseDoubleDecimalSeparator=Utilizar .. para separar esquema y tabla
DatabaseDialog.label.ServerHostname=Nombre del servidor
DatabaseDialog.column.PoolDescription=Descripci\u00F3n de par\u00E1metro
DatabaseDialog.label.SystemNumber=N\u00FAmero de sistema
DatabaseDialog.MSSQLTab.title=SQL Server
SQLEditor.Button.ClearCache.Tooltip=Utilizar este bot\u00F3n si encuentra que los resultados arriba no corresponden con la situaci\u00F3n actual en la base de datos.\nLa cache de la base de datos se vuelve inv\u00E1lida si utilizar otras herramientas adem\u00E1s de Kettle para crear \u00F3 modificar tablas en la base de datos.
DatabaseExplorerDialog.Error.RetrieveLayout=No pudo obtenerse el diagrama de tablas.
SQLEditor.Log.OnPartition=en partici\u00F3n "{0}"
DatabaseDialog.label.TablespaceForData=Espacio de tablas para datos
EnterMappingDialog.TargetFields.Label=Campos destino\:
DatabaseDialog.label.DriverClass=Clase del controlador
DatabaseDialog.label.Options=Opciones
DatabaseDialog.ClusterTab.tooltip=Informaci\u00F3n opcional de cluster
DatabaseDialog.button.Test=\ Probar
SQLEditor.WholeCacheCleared.Title=Cache vaciada
SQLEditor.Result.Message=Las consultas SQL tuvieron los siguientes resultados
EnterSearchDialog.FilterSelection.Label=Filtro
EnterSearchDialog.Step.Tooltip=Buscar pasos
DatabaseDialog.label.SQLServerInstance=Nombre de la instancia de SQL Server
EnterOptionsDialog.AutoSplitHops.Tooltip=Si un paso es arrastrado hacia un salto, el salto puede ser dividido\n de manera que el nuevo paso quede ubicado entre los dos originales.\nSi se activa esta opci\u00F3n lo anterior suceder\u00E1 autom\u00E1ticamente, de otra manera se muestra un di\u00E1logo de confirmaci\u00F3n.
DatabaseDialog.tooltip.Parameter=Los valores para los par\u00E1metros
DatabaseDialog.button.ShowHelp=Mostrar ayuda sobre las opciones
EnterMappingDialog.Button.Guess=&Adivinar
SQLEditor.ConnectionCacheCleared.Message=La cache de la conexi\u00F3n "{0}" fue vaciada
SQLEditor.Log.SQLExecError=Error al ejecutar\: {0}\n{1}
EnterOptionsDialog.DefaultLocale.Label=Lenguaje Preferido\:
DatabaseExplorerDialog.Menu.OpenSQL=Abrir SQL para [{0}]
GetQueryFieldsProgressDialog.Error.Message=\u00A1Ocurri\u00F3 un error al obtener informaci\u00F3n de la base de datos\!
DatabaseDialog.label.AccessMethod=M\u00E9todo de acceso
EnterOptionsDialog.ReplaceDBAsk.Tooltip=Si las transformaciones son abiertas \u00F3 importadas y la conexi\u00F3n a base de datos existe con el mismo nombre que alguna actual,\nun di\u00E1logo puede ser mostrado para preguntar al usuario si deben reemplazarse las conexiones existentes \u00F3 no.
DatabaseDialog.button.FeatureList=\ Lista de funciones
SQLEditor.Log.StatsExecuted={0} sentencias SQL ejecutadas
EnterOptionsDialog.ClearCustomParameters.Title=Pregunta
DatabaseDialog.ErrorConnectionInfo.title=Error
SQLEditor.Log.SQLExecuted=SQL ejecutado\: {0}

View File

@ -0,0 +1,101 @@
#
# EnterSearchDialog
#
EnterSearchDialog.Shell.Title = Buscar Meta Información
EnterSearchDialog.Step.Label = Buscar pasos
EnterSearchDialog.Step.Tooltip = Buscar pasos
EnterSearchDialog.DB.Label = Buscar conexiones a Base de Datos
EnterSearchDialog.DB.Tooltip = Buscar conexiones a Base de Datos
EnterSearchDialog.Note.Label = Buscar notas
EnterSearchDialog.Note.Tooltip = Buscar notas
EnterSearchDialog.FilterSelection.Label = Filtro
#
# DatabaseDialog
#
DatabaseDialog.Shell.title=Datos de la conexión
DatabaseDialog.button.Test=\ Probar
DatabaseDialog.button.Explore=\ Explorar
DatabaseDialog.button.FeatureList=\ Lista de funciones
DatabaseDialog.DbTab.title=General
DatabaseDialog.label.ConnectionName=Nombre de la conexi\u00F3n
DatabaseDialog.label.ConnectionType=Tipo de conexi\u00F3n
DatabaseDialog.label.AccessMethod=M\u00E9todo de acceso
DatabaseDialog.label.ServerHostname=Nombre del servidor
DatabaseDialog.label.DatabaseName=Nombre de la base de datos
DatabaseDialog.label.PortNumber=N\u00FAmero de puerto
DatabaseDialog.label.Username=Nombre de usuario
DatabaseDialog.label.Password=Contrase\u00F1a
DatabaseDialog.PoolTab.title=Reserva
DatabaseDialog.label.UseConnectionPool=Usar reserva de conexiones
DatabaseDialog.label.InitialPoolSize=Tama\u00F1o inicial de la reserva
DatabaseDialog.label.MaximumPoolSize=Tama\u00F1o m\u00E1ximo de la reserva
DatabaseDialog.OracleTab.title=Oracle
DatabaseDialog.label.TablespaceForData=Espacio de tablas para datos
DatabaseDialog.label.TablespaceForIndexes=Espacio de tablas para \u00EDndices
DatabaseDialog.MySQLTab.title=MySQL
DatabaseDialog.label.MySQLStreamResults=Utilizar flujo de resultados (emulaci\u00F3n de cursor) DatabaseDialog.IfxTab.title\=Informix
DatabaseDialog.label.InformixServername=Nombre de servidor Informix
DatabaseDialog.label.Sap=SAP ERP
DatabaseDialog.label.Language=Lenguaje
DatabaseDialog.label.SystemNumber=N\u00FAmero de sistema
DatabaseDialog.label.SapClient=Cliente SAP
DatabaseDialog.GenericTab.title=Genérico
DatabaseDialog.GenericTab.tooltip=Parámetros para usar una base de datos genérica que no tenga un controlador JDBC soportado
DatabaseDialog.label.Url=URL
DatabaseDialog.label.DriverClass=Clase del controlador
DatabaseDialog.label.Options=Opciones
DatabaseDialog.tooltip.Options=Opciones extra para la URL
DatabaseDialog.button.ShowHelp=Mostrar ayuda sobre las opciones
DatabaseDialog.column.DbType=Tipo de base de datos
DatabaseDialog.column.Parameter=Parámetro
DatabaseDialog.column.Value=Valor
DatabaseDialog.tooltip.DbType=Los parámetros extra que se deben poner en la URL para conectar a la base de datos
DatabaseDialog.tooltip.Parameter=Los valores para los parámetros
DatabaseDialog.SQLTab.title=SQL
DatabaseDialog.SQLTab.tooltip=SQL que se debe ejecutar después de conectar
DatabaseDialog.label.Statements=Las sentencias a ejecutar justo después de conectar (separadas por ;)
DatabaseDialog.ClusterTab.title=Clúster
DatabaseDialog.ClusterTab.tooltip=Información opcional de cluster
DatabaseDialog.label.UseClustering=¿Usar cluster?
DatabaseDialog.tooltip.UseClustering=Permitir añadir todo tipo de información al cluster.
DatabaseDialog.column.PartitionId=Id de la partición
DatabaseDialog.column.Hostname=Nombre del servidor
DatabaseDialog.column.Port=Puerto
DatabaseDialog.column.DatabaseName=Nombre de la base de datos
DatabaseDialog.column.Username=Nombre de usuario
DatabaseDialog.column.Password=Contraseña
DatabaseDialog.tooltip.PartitionId=Los parámetros extra que se deben poner en la URL para conectar a la base de datos
DatabaseDialog.tooltip.Hostname=Los valores para los parámetros
DatabaseDialog.HelpText.title=Ayuda de las opciones
DatabaseDialog.HelpText.description=Esta es la ayuda para [{0}] :
DatabaseDialog.ErrorHelpText.title=¡Error!
DatabaseDialog.ErrorHelpText.description=Ayuda no disponible. Por favor, compruebe que todos los parámetros solicitados se han introducido correctamente.
DatabaseDialog.ErrorParameters.title=¡Error!
DatabaseDialog.ErrorParameters.description=Por favor, compruebe que todos los parámetros solicitados se han introducido correctamente.
DatabaseDialog.ErrorConnectionInfo.title=Error
DatabaseDialog.ErrorConnectionInfo.description=Información de la conexión no disponible.
DatabaseDialog.report.ConnectionWithPartOk=La conexión a la base de datos [{0}] con el id de partición [{1}] funciona bien.
DatabaseDialog.report.ConnectionWithPartError=Error conectando a la base de datos [{0}] con el id de partición [{1}] : {2}
DatabaseDialog.report.Hostname= Nombre de servidor \:
DatabaseDialog.report.Port= Puerto \:
DatabaseDialog.report.DatabaseName= Nombre de base de datos \:
DatabaseDialog.report.ConnectionOk=La conexión a la base de datos [{0}] funciona bien.
DatabaseDialog.report.ConnectionError=Error conectando a la base de datos [{0}] \:
DatabaseDialog.ConnectionReport.title=Informe de conexión
DatabaseDialog.ConnectionReport.description=Aquí tiene el informe de conexión
DatabaseDialog.ErrorParameters2.title=¡Error!
DatabaseDialog.ErrorParameters2.description=Por favor, compruebe que todos los par\u00E1metros solicitados se han introducido correctamente\:\n{0}
DatabaseDialog.FeatureList.title=Lista de funciones
DatabaseDialog.FeatureList.title2="La lista de funciones:"
DatabaseDialog.FeatureListError.title=¡Error!
DatabaseDialog.FeatureListError.description=Lista de funciones no disponible. Por favor, compruebe que todos los parámetros solicitados se han introducido correctamente.
DatabaseDialog.Exception.IncorrectParameter=Par\u00E1metros de base de datos incorrectos\! Comprueba esta configuraci\u00F3n \:
DatabaseDialog.label.PoolParameters = Párametros del Fondo Común de Conexiones
DatabaseDialog.column.PoolParameter=Párametro del fondo
DatabaseDialog.column.PoolDefault=Valor por defecto
DatabaseDialog.column.PoolValue=Valor
DatabaseDialog.column.PoolDescription=Descripción de parámetro
DatabaseDialog.column.SelectPoolParameter=Selecciona el parámetro del fondo a configurar

View File

@ -0,0 +1,349 @@
#File generated by Hitachi Vantara Translator for package 'org.pentaho.di.ui.core.database.dialog' in locale 'fr_FR'
#
#
#Wed Jan 05 16:32:24 CET 2011
CheckResultDialog.WarningsErrors.Label=Alertes et erreurs\:
DatabaseExplorerDialog.Menu.GenDDL=G\u00E9n\u00E9rer instructions DDL
EnterMappingDialog.Button.Delete=&Supprimer
EnterOptionsDialog.ShowRepoDialog.Label=Afficher menu r\u00E9f\u00E9rentiel au d\u00E9marrage
SQLStatementDialog.Success.Title=Succ\u00E8s
EnterPrintDialog.Title=Pages impression
DatabaseDialog.report.Hostname=Nom H\u00F4te \:
DatabaseExplorerDialog.TargetDatabase.Title=Base de donn\u00E9es cible
CheckResultDialog.Stepname.Label=Nom \u00E9tape
DatabaseExplorerDialog.Views.Label=Vues
DatabaseDialog.ClusterTab.title=Grappe
DatabaseDialog.label.SystemNumber=Nombre Syst\u00E8me
DatabaseDialog.report.ConnectionError=Erreur durant la connexion \u00E0 la base de donn\u00E9es [{0}] \:
PreviewRowsDialog.NoRows.Message=D\u00E9sol\u00E9, aucune donn\u00E9e n''a \u00E9t\u00E9 retourn\u00E9e pour la pr\u00E9visualisation.
StepFieldsDialog.TableCol.Precision=Pr\u00E9cision
StepFieldsDialog.TableCol.Type=Type
SQLStatementDialog.Log.Connection=-- Connexion base de donn\u00E9es \: {0}\n
EnterOptionsDialog.ClearCustomParameters.Tooltip=Suppresssion de tous les param\u00E8tres des \u00E9tapes et plugiciels
DatabaseDialog.ErrorParameters2.title=Erreur\!
SQLStatementDialog.TableCol.Stepname=Nom \u00E9tape
EnterOptionsDialog.ReplaceDBAsk.Tooltip=Si des transformations sont import\u00E9es et qu''elles contiennent des connexions portant le m\u00EAme nom,\nl''utilisateur est invit\u00E9 \u00E0 choisir le remplacement ou non.
DatabaseDialog.label.UseConnectionPool=Utiliser un pool de connexions
EnterOptionsDialog.BackgroundColor.Label=Couleur arri\u00E8re plan\:
EnterMappingDialog.ResultMappings.Label=Sch\u00E9ma de correspondance
DatabaseDialog.Shell.title=Informations connexion
SQLEditor.Result.Message=R\u00E9sultat des instructions SQL
DatabaseDialog.label.MaximumPoolSize=La taille maximale du pool
CheckResultDialog.ShowSuccessful.Label=Afficher contr\u00F4les r\u00E9ussis
DatabaseExplorerDialog.Menu.Truncate=Tronquer la table [{0}]
EnterOptionsDialog.ShowWelcomePage.Label=Afficher onglet de bienvenue au d\u00E9marrage
DatabaseDialog.tooltip.DbType=Les param\u00E8tres suppl\u00E9mentaires \u00E0 ins\u00E9rer dans l''URL
EnterOptionsDialog.HelpToolTipsEnabled.Label=Afficher infos bulles aide
SQLEditor.ErrorExecSQL.Message=An error occured executing the following sql\:\n\n{0}
SQLStatementDialog.Error.CouldNotExec=L''instruction suivant n''a pas pu \u00EAtre ex\u00E9cut\u00E9e\:\n{0}
DatabaseDialog.ConnectionReport.description=Etat sur la connexion
DatabaseExplorerDialog.PreviewTable.Message=Nombre de lignes maximum \u00E0 pr\u00E9visualiser (0 aucune limite)
DatabaseDialog.ErrorHelpText.title=Erreur\!
DatabaseDialog.label.MySQLStreamResults=Utiliser r\u00E9sultat flux (\u00E9mulation curseur)
EnterPrintDialog.BottomMargin.Label=marge en Bas (inch)\:
DatabaseDialog.label.ConnectionName=Nom connexion
DatabaseDialog.ConnectionReport.title=Etat sur la connexion
DatabaseExplorerDialog.Catalogs.Label=Catalogues
DatabaseDialog.ExplorerNotImplemented.Title=D\u00E9sol\u00E9
PreviewRowsDialog.ShowLogging.Message=The logging text
DatabaseDialog.label.SapClient=Client SAP
EnterOptionsDialog.GridSize.Label=Activer grille d''alignement
EnterPrintDialog.Cols.Label=Colonnes\:
EnterMappingDialog.HideUsedTargets=Masquer champs cibles assign\u00E9s
EnterOptionsDialog.DialogMiddlePercentage.Label=% Bo\u00EEte de dialogue\:
SQLStatementDialog.Title=Liste instructions SQL \u00E0 ex\u00E9cuter
EnterOptionsDialog.BackgroundColorGraph.Label=Couleur arri\u00E8re plan espace travail\:
EnterOptionsDialog.ShowSaveConfirmation.Label=Afficher \u00E9cran de "sauvegarde"
EnterPrintDialog.PrintArea.Label=Limite impression\:
SQLEditor.Error.CouldNotConnect.Message=Impossible de se connecter \u00E0 la base de donn\u00E9es\!\nVeuillez svp v\u00E9rifie les param\u00E8tres de la connexion [{0}]\n{1}
SQLEditor.Log.SQLExecuted=Instruction SQL \u00E9x\u00E9cut\u00E9e\: {0}\n
DatabaseDialog.label.Options=Options
SQLStatementDialog.Log.Error=-- Message erreur \: {0}\n
DatabaseDialog.column.Parameter=Param\u00E8tre
EnterOptionsDialog.MaxLogLineTimeout.Label=Timeout du journal central en minutes
DatabaseDialog.report.ConnectionWithPartOk=La connexion \u00E0 la base de donn\u00E9es [{0}] avec l''id de partition [{1}] a \u00E9t\u00E9 effectu\u00E9e avec succ\u00E8s.
SQLEditor.ConnectionCacheCleared.Message=Cache de la connexion ''{0}'' vid\u00E9
EnterOptionsDialog.FixedWidthFont.Label=Largeur fix\u00E9\:
SQLEditor.WholeCacheCleared.Message=Cache enti\u00E8rement vid\u00E9
DatabaseDialog.label.Url=URL
EnterStringsDialog.Title=Saisissez valeurs chaines
SelectRowDialog.Title=S\u00E9lectionner une entr\u00E9e
DatabaseExplorerDialog.Menu.PreviewN=&Pr\u00E9visualiser les ... premi\u00E8res lignes de [{0}]
DatabaseDialog.label.TablespaceForIndexes=Tablespace des indexes
XulDatabaseDialog.Error.Title=Erreur
EnterMappingDialog.HideUsedSources=Masquer champs sources assign\u00E9s
EnterOptionsDialog.ToolTipsEnabled.Label=Afficher infos bulles
EnterOptionsDialog.ReplaceDB.Label=Remplacer connexions existantes sur ouverture/import
XulDatabaseDialog.Error.HandleXul=Erreur au niveau de la d\u00E9finition de l''interface XUL
SQLStatementDialog.Button.ViewSQL=&Afficher SQL
DatabaseExplorerDialog.NoConnectionsKnown.Message=Aucune autre connexion n''est disponible.
EnterOptionsDialog.TabColor.Label=Couleur\:
SQLEditor.ResultRows.Title=Instruction SQL \#{0}
DatabaseDialog.label.PortNumber=Num\u00E9ro du port
DatabaseDialog.ClusterTab.tooltip=Information optionnel sur le grappage
DatabaseDialog.ErrorParameters.description=Veuillez svp vous assurer que tous les param\u00E8tres requis sont bien renseign\u00E9s\!
CheckResultDialog.Remarks.Label=Remarques\:
DatabaseDialog.HelpText.description=Texte d''aide pour [{0}] \:
EnterPrintDialog.TopMargin.Label=Marge en Haut (inch)\:
EnterOptionsDialog.ClearCustomParameters.Question=Voulez vous vraiment supprimer tous les param\u00E8tres des \u00E9tapes et plugiciels?
EnterListDialog.RemoveOne.Tooltip=Enlever les \u00E9l\u00E9ments s\u00E9lectionn\u00E9s de la droite
DatabaseDialog.GenericTab.title=G\u00E9n\u00E9rique
EnterOptionsDialog.NoteFont.Label=Police notes\:
EnterOptionsDialog.AutoSplitHops.Tooltip=Si cette option est s\u00E9lectionn\u00E9e, l''insertion d''une \u00E9tape entre deux \u00E9tapes se fera automatiquement. Sinon la confimation de l''utilisateur sera exig\u00E9e.
DatabaseExplorerDialog.TableSize.Message=La table ''{0}'' contient {1} ligne(s)
PreviewRowsDialog.Title=Examen donn\u00E9es pr\u00E9visualis\u00E9es
DatabaseDialog.FeatureList.title2=La liste des sp\u00E9cifications\:
EnterOptionsDialog.AutoSplitHops.Label=Ins\u00E9rer auto. \u00E9tape
EnterOptionsDialog.GraphFont.Label=Police espace travail\:
DatabaseDialog.column.DatabaseName=Nom base de donn\u00E9es
DatabaseDialog.label.DatabaseName=Nom de la base de donn\u00E9es
DatabaseDialog.column.Port=Num\u00E9ro du Port
DatabaseDialog.label.InformixServername=Nom du serveur Informix
StepFieldsDialog.TableCol.Origin=\u00C9tape origine
DatabaseDialog.column.SelectPoolParameter=S\u00E9lectionner param\u00E8tre pool
SQLEditor.Result.Title=R\u00E9sultat des instruction SQL
StepFieldsDialog.Buttons.EditOrigin=&Editer \u00E9tape origine
DatabaseDialog.label.DriverClass=Classe Pilote
DatabaseDialog.label.InitialPoolSize=La taille initiale du pool
EnterOptionsDialog.CanvasIndicateSlowSteps.Tooltip=S\u00E9lectionnez cette option si vous souhaitez marqu\u00E9 visuellement (bord de l'\u00E9tape anim\u00E9)\r\nles \u00E9tapes qui sont lentes dans le traitement des lignes.
EnterListDialog.AvailableItems.Label=Elements disponibles\:
EnterListDialog.RemoveAll.Tooltip=Ajouter tous les \u00E9l\u00E9ments de la droite
DatabaseDialog.column.PoolValue=Valeur
ConditionDialog.Title=Saisissez Condition
DatabaseDialog.label.Username=Nom d''utilisateur
DatabaseDialog.tooltip.Options=Options suppl\u00E9mentaires \u00E0 inscrire dans l''URL
CheckResultDialog.TextDialog.Title=Afficher message
DatabaseDialog.ErrorHelpText.description=Impossible de r\u00E9cup\u00E9rer le texte d''aide. Veuillez svp vous assurer que tous les param\u00E8tres requis sont bien renseign\u00E9s\!
DatabaseDialog.DbTab.title=G\u00E9n\u00E9ral
DatabaseDialog.PoolTab.title=Pooling
ShowImageDialog.Title=Affichage Image
EnterSearchDialog.Note.Label=Rechercher note
DatabaseDialog.column.Username=Nom utilisateur
EnterOptionsDialog.ClearCustomParameters.Confirmation=Les param\u00E8tres des \u00E9tapes/plugiciels ont \u00E9t\u00E9 supprim\u00E9s.
GetDatabaseInfoProgressDialog.Error.Title=Erreur lors de la r\u00E9cup\u00E9ration des informations
SQLEditor.Error.CouldNotConnect.Title=Impossible de se connecter
EnterOptionsDialog.General.Label=G\u00E9n\u00E9ral
CheckResultDialog.Title=R\u00E9sultats contr\u00F4les transformation
DatabaseExplorerDialog.Menu.ShowLayout=Afficher structure sortie de [{0}]
EnterStringsDialog.StringName.Label=Nom
DatabaseDialog.button.FeatureList=Sp\u00E9cification
DatabaseDialog.label.Sap=SAP ERP
CheckResultDialog.Button.ViewMessage=Afficher message
SQLStatementDialog.Log.Undefined=<und\u00E9fini>
XulDatabaseDialog.Error.ResourcesNotFound.Title=Impossible de trouver des ressources
DatabaseDialog.tooltip.UseClustering=Activer le grappage.
DatabaseDialog.GenericTab.tooltip=Param\u00E8tres dans le cas de l''utilisation d''une base de donn\u00E9es g\u00E9n\u00E9rique
EnterOptionsDialog.MaxNrLogLinesSize.Label=Nombre de lignes max
EnterPrintDialog.LeftMargin.Label=Marge gauche (inch)\:
SQLEditor.ConnectionCacheCleared.Title=Cache connexion vid\u00E9
EnterSearchDialog.Step.Tooltip=Rechercher \u00E9tape
EnterMappingDialog.AutoSourceSelection.Label=S\u00E9lection auto. source
PreviewRowsDialog.ShowLogging.Title=Logging text
EnterMappingDialog.Button.Add=&Ajouter
DatabaseExplorerDialog.UnexpectedProfilingError.Message=PDI a rencontr\u00E9 une erreur lors de l''analyse des donn\u00E9es \:
DatabaseDialog.label.AdvancedForceIdentifiersLowerCase=Mettre tous les identifiants en minuscule
DatabaseDialog.ErrorConnectionInfo.title=Erreur
DatabaseDialog.FeatureListError.title=Erreur\!
DatabaseDialog.IfxTab.title=Informix
DatabaseDialog.column.Hostname=Nom de l''h\u00F4te
EnterOptionsDialog.FailoverLocale.Label=Langue substitution\:
GetTableSizeProgressDialog.Error.Title=Erreur lors de la r\u00E9cup\u00E9ration des informations
SQLStatementDialog.Button.EditStep=&Editer \u00E9tape origine
DatabaseDialog.DatabaseConnectionTest.title=Test de la connexion
EnterOptionsDialog.Button.Reset.Tooltip=Initialisation \u00E0 la valeurs par d\u00E9faut
SQLEditor.Position.Label=Ligne {0} colonne {1}
SQLEditor.Button.Execute=&Ex\u00E9cuter
EnterOptionsDialog.AskOnExit.Label=Demander confirmation sur sortie
DatabaseDialog.label.Statements=Les ordres SQL \u00E0 \u00E9x\u00E9cuter apr\u00E8s la connexion \u00E0 la base de donn\u00E9es (s\u00E9par\u00E9s par by ;)
SQLEditor.Button.ClearCache.Tooltip=Utiliser ce bouton si vous remarquez que le r\u00E9sultat ne correspond \u00E0 la r\u00E9alit\u00E9.\nLe cache de la base de donn\u00E9es devient invalide d\u00E9s lors qu''un autre outil modifier les tables concern\u00E9es.
DatabaseDialog.label.UseDoubleDecimalSeparator=Utiliser .. pour s\u00E9parer table et sch\u00E9ma
StepFieldsDialog.Fields.Label=Champs\:
DatabaseExplorerDialog.Menu.GenDDLOtherConn=G\u00E9n\u00E9rer instructions DDL pour autre connexion
GetPreviewTableProgressDialog.Error.Message=PDI a rencontr\u00E9 une erreur la r\u00E9cup\u00E9ration des informations depuis la base de donn\u00E9es\!
SQLEditor.Button.ClearCache=&Vider cache
SQLStatementDialog.Log.Step=-- \u00C9tape \: {0}\n
DatabaseDialog.report.Port=Num\u00E9ro Port \:
EnterOptionsDialog.ShadowSize.Label=Taille ombre \u00E9tape,liens\:
SQLStatementDialog.TableCol.Error=Erreur
EnterValueDialog.Length.Label=Longeur\:
EnterSearchDialog.Shell.Title=Recherche Meta-Donn\u00E9es
DatabaseDialog.MSSQLTab.title=SQL Server
SQLEditor.ClearWholeCache.Message=Souhaitez vous vider enti\u00E8rement le cache?\nSi vous r\u00E9pondez par la n\u00E9gative, le cache de la connexion ''{0}'' sera vid\u00E9
EnterMappingDialog.SourceFields.Label=Champs sources
SQLEditor.ClearWholeCache.Title=Vider enti\u00E8rement la cache?
DatabaseDialog.report.ConnectionOk=La connexion \u00E0 la base de donn\u00E9es [{0}] a \u00E9t\u00E9 effectu\u00E9e avec succ\u00E8s.
EnterOptionsDialog.CopyOrDistributeDialog.Tooltip=Si cette option est s\u00E9lectionn\u00E9e et une \u00E9tape est sur le point de transmettre des donn\u00E9es \u00E0 plus d''une \u00E9tape, l''utilisateur sera invit\u00E9 \u00E0 choisir entre la distribution et la copie.
SQLStatementDialog.Error.Message=We can''t execute the selected statetements as there are/is {0} with errors.
DatabaseExplorerDialog.Menu.OpenSQL=Ouvrir La fen\u00EAtre ex\u00E9cution SQL pour [{0}]
EnterOptionsDialog.UseDatabaseCache.Label=Utiliser cache base de donn\u00E9es
EnterMappingDialog.TargetFields.Label=Champs cibles
DatabaseDialog.label.AdvancedQuoteAllFields=Quoter tous les identifiants de la BDD
Dialog.Error.Header=Erreur
SQLStatementDialog.Error.CouldNotConnect=Impossible de se connecter \u00E0 la connexion [{0}]
EnterOptionsDialog.EnableAutoCollapseCoreObjectTree.Label=Replier automatiquement la palette
XulDatabaseDialog.Error.ResourcesNotFound=Impossible de trouver des ressources pour la langue {0}, basculement vers la langue par d\u00E9faut {1}
EnterOptionsDialog.GridSize.ToolTip=Activer la grille sur le canevas afin de rendre l''alignement des \u00E9tapes plus facile.\r\nSaisissez dans cette case le pas de s\u00E9paration de deux points de la grille.\r\n
EnterMappingDialog.AutoTargetSelection.Label=S\u00E9lection auto. cible
DatabaseDialog.ExplorerNotImplemented.Message=D\u00E9sol\u00E9, l''explorateur pour ce fournisseur n''a pas \u00E9t\u00E9 encore impl\u00E9ment\u00E9.
CheckResultDialog.TextDialog.SubtitlePlural=Messages\:
DatabaseExplorerDialog.NoRows.Message=La table est vide
EnterOptionsDialog.Button.Edit=Changer
EnterListDialog.Selection.Label=Votre s\u00E9lection\:
EnterValueDialog.TestResult.Title=Valeur
EnterOptionsDialog.Button.Reset=R\u00E9-initialiser
DatabaseDialog.SQLTab.tooltip=Sp\u00E9cifier les ordres SQL \u00E0 \u00E9x\u00E9cuter apr\u00E8s la connexion \u00E0 la base de donn\u00E9es
EnterOptionsDialog.ClearCustomParameters.Title=Question
GetDatabaseInfoProgressDialog.Error.Message=PDI a rencontr\u00E9 une erreur la r\u00E9cup\u00E9ration des informations depuis la base de donn\u00E9es\!
EnterOptionsDialog.OpenLastFileStartup.Label=Ouvrir dernier fichier au d\u00E9marrage
EnterOptionsDialog.ReplaceDBAsk.Label=Confirmer remplacement connexions sur ouverture/import
EnterOptionsDialog.OnlySaveUsedConnections.Label=Sauvegarder uniquement les connexions utilis\u00E9es
EnterStringsDialog.StringValue.Label=Valeur
EnterOptionsDialog.AutoSave.Label=Sauvegarder automatiquement traitements modifi\u00E9s
EnterPrintDialog.Scaling.Label=Echelle (10-100%)\:
SQLStatementDialog.Success.Message={0} SQL statement(s) executed successfully
EnterStringsDialog.Message=Saisissez valeurs pour les chaines sp\u00E9cifi\u00E9es ci-dessous\:
EnterValueDialog.Value.Label=Valeur\:
EnterValueDialog.Precision.Label=Pr\u00E9cision\:
SQLEditor.Editor.Label=Instructions SQL, s\u00E9par\u00E9es par un point virgule '';''
DatabaseDialog.label.Password=Mot de passe
DatabaseDialog.ErrorConnectionInfo.description=Impossible de r\u00E9cup\u00E9rer les informations de connexion
DatabaseDialog.ErrorParameters.title=Erreur\!
EnterOptionsDialog.Button.Edit.Tooltip=Edition options
DatabaseExplorerDialog.Synonyms.Label=Synonymes
DatabaseExplorerDialog.TableSize.Title=Nombre de lignes
DatabaseExplorerDialog.NoRows.Title=Aucune ligne
DatabaseDialog.column.Password=Mot de passe
DatabaseDialog.button.Test=\ Tester
DatabaseDialog.column.PoolDefault=Valeur par d\u00E9faut
CheckResultDialog.HideSuccessful.Label=Masquer contr\u00F4les r\u00E9u&ssis
EnterSearchDialog.Note.Tooltip=Rechercher note
EnterOptionsDialog.Title=Options
Dialog.Error.EnterInteger=Veuillez svp saisir un nombre entier\!
EnterValueDialog.ConversionFormat.Label=Format conversion\:
SQLStatementDialog.Button.ExecSQL=E&x\u00E9cuter SQL
GetQueryFieldsProgressDialog.Error.Message=PDI a rencontr\u00E9 une erreur la r\u00E9cup\u00E9ration des informations depuis la base de donn\u00E9es\!
DatabaseDialog.label.TablespaceForData=Tablespace des donn\u00E9es
DatabaseDialog.column.DbType=type base de donn\u00E9es
GetPreviewTableProgressDialog.Error.Title=Erreur lors de la r\u00E9cup\u00E9ration des informations
EnterOptionsDialog.MaxNrHistLinesSize.Label=Limite (lignes) vue donn\u00E9es historis\u00E9es
DatabaseDialog.label.Language=Langage
SQLStatementDialog.TableCol.SQL=SQL
DatabaseDialog.JDBCOptions.Tab={0}\: Aide options JDBC
DatabaseDialog.SQLTab.title=SQL
DatabaseExplorerDialog.Title=Explorateur base de donn\u00E9es sur la connexion [{0}]
DatabaseDialog.label.PoolParameters=Param\u00E8tres de pool de connexion
DatabaseExplorerDialog.Menu.Preview100=&Pr\u00E9visualiser les 100 premi\u00E8res lignes de [{0}]
DatabaseDialog.MySQLTab.title=MySQL
EnterOptionsDialog.ClearCustomParameters.Label=supprimer param\u00E8tres (\u00E9tapes / plugiciels)\:
DatabaseDialog.HelpText.title=Texte d''aide sur les options
EnterOptionsDialog.MaximumUndo.Label=Niveau max d''annulation\:
EnterPrintDialog.Rows.Label=Lignes\:
DatabaseDialog.Exception.IncorrectParameter=Param\u00E8tre(s) de base de donn\u00E9es incorrect(s)\! Veuillez svp v\u00E9rificer ces param\u00E8tres \:
EnterSearchDialog.FilterSelection.Label=Filtre
CheckResultDialog.Button.EditOriginStep=Editer \u00E9tape origine
EnterOptionsDialog.LineWidth.Label=Largeur ligne espace travail\:
DatabaseDialog.label.AccessMethod=M\u00E9thode d''acc\u00E8s
EnterMappingDialog.Button.Guess=&Deviner
DatabaseDialog.FeatureListError.description=Impossible de r\u00E9cup\u00E9rer la liste des sp\u00E9cifications. Veuillez svp vous assurer que tous les param\u00E8tres requis sont bien renseign\u00E9s\!
EnterOptionsDialog.Branding.Label=Afficher logo
DatabaseDialog.column.PoolDescription=Description param\u00E8tre
DatabaseExplorerDialog.Tables.Label=Tables
ErrorDialog.ShowDetails.Title=D\u00E9tail erreurs
DatabaseExplorerDialog.Procedures.Label=Proc\u00E9dures
DatabaseExplorerDialog.NoConnectionsKnown.Title=Aucune connexion
EnterOptionsDialog.CanvasAntiAliasing.Label=Canevas anti-surnom
DatabaseExplorerDialog.TargetDatabase.Message=S\u00E9lectionner la base de donn\u00E9es cible\:
SQLEditor.Log.StatsExecuted={0} instructions SQL \u00E9x\u00E9cut\u00E9es
SQLEditor.Title=Editeur instructions SQL
DatabaseDialog.tooltip.Parameter=Les valeurs des param\u00E8tres
GetTableSizeProgressDialog.Error.Message=PDI a rencontr\u00E9 une erreur la r\u00E9cup\u00E9ration des informations depuis la base de donn\u00E9es\!
PreviewRowsDialog.Button.ShowLog=Afficher &Trace
DatabaseDialog.column.Value=Valeur
ErrorDialog.ShowDetails.Message=D\u00E9tail erreurs
DatabaseDialog.button.ShowHelp=Afficher le texte d''aide sur l''utilisation des options
DatabaseExplorerDialog.Menu.DisplayColumns=Afficher les colonnes
DatabaseExplorerDialog.Error.GenDDL=Impossible de g\u00E9n\u00E9rer les instructions DDL
EnterListDialog.Title=Saisissez liste
DatabaseExplorerDialog.Schemas.Label=Sch\u00E9mas
DatabaseDialog.label.SQLServerInstance=Nom instance SQL Server
StepFieldsDialog.Name.Label=Nom \u00E9tape\:
DatabaseExplorerDialog.PreviewTable.Title=Limite de pr\u00E9visualisation
DatabaseDialog.AdvancedTab.title=Divers
EnterOptionsDialog.ShowTipsStartup.Label=Afficher astuces au d\u00E9marrage
DatabaseDialog.column.PartitionId=ID Partition
SQLEditor.WholeCacheCleared.Title=Cache vid\u00E9
SQLEditor.Log.OnPartition=sur la partition ''{0}''
DatabaseDialog.OracleTab.title=Oracle
EnterOptionsDialog.OnlyActiveFile.Label=Afficher uniquement fichier actif dans explorateur
EnterSearchDialog.Step.Label=Rechercher \u00E9tape
EnterOptionsDialog.CanvasIndicateSlowSteps.Label=Marquer les \u00E9tapes lentes
EnterOptionsDialog.LookAndFeel.Label=Apparence
DatabaseDialog.label.AdvancedForceIdentifiersUpperCase=Mettre tous les identifiants en majuscule
StepFieldsDialog.Title=Champs \u00E9tape
EnterOptionsDialog.IconSize.Label=Taille ic\u00F4ne\:
EnterOptionsDialog.DefaultPreviewSize.Label=Nbr lignes max \u00E0 pr\u00E9visualiser par d\u00E9faut\:
DatabaseDialog.column.PoolParameter=Param\u00E8tres pool
SQLStatementDialog.ViewSQL.Message=Instructions SQL\:
CheckResultDialog.TextDialog.Subtitle=Message\:
EnterPrintDialog.RightMargin.Label=Marge droite (inch)\:
CheckResultDialog.Remark.Label=Remarque
DatabaseDialog.tooltip.PartitionId=Les param\u00E8tres suppl\u00E9mentaires \u00E0 ins\u00E9rer dans l''URL
SQLEditor.NoRows.Message=Pas de r\u00E9sultat retourn\u00E9 pour l''instruction SQL\:\n\n{0}
SQLEditor.NoRows.Title=Pas de r\u00E9sultat
EnterSearchDialog.DB.Label=Rechercher connexions
EnterMappingDialog.Title=Dialogue sch\u00E9ma de correspondance
DatabaseDialog.label.ConnectionType=Fournisseur base de donn\u00E9es
SQLEditor.ErrorExecSQL.Title=Erreur lors de l''ex\u00E9cution de l''instruction SQL
EnterConditionDialog.Title=Saisissez condition
EnterOptionsDialog.UseOSLook.Label=Utiliser apparence du SE
EnterOptionsDialog.DefaultLocale.Label=Langue\:
DatabaseDialog.report.DatabaseName=Nom Base de donn\u00E9es \:
DatabaseDialog.FeatureList.title=Liste sp\u00E9cifications
EnterListDialog.AddOne.Tooltip=Ajouter les \u00E9l\u00E9ments s\u00E9lectionn\u00E9s (gauche)
DatabaseExplorerDialog.Menu.ProfileTable=Profilage des donn\u00E9es ''{0}''
EnterSearchDialog.DB.Tooltip=Rechercher connexion
SQLStatementDialog.Error.Title=Erreur
GetDatabaseInfoProgressDialog.Error.GettingInfoTable=PDI a rencontr\u00E9 une erreur lors de la tentative de r\u00E9cup\u00E9ration des informations depuis la base de donn\u00E9es\: {0}
DatabaseExplorerDialog.UnexpectedProfilingError.Title=Erreur analyse donn\u00E9es
DatabaseDialog.tooltip.Hostname=Les valeurs des param\u00E8tres
PreviewRowsDialog.NoRows.Text=D\u00E9sol\u00E9
StepFieldsDialog.TableCol.Fieldname=Nom champ
SQLEditor.LineNr.Label=Nr ligne\: {0}
DatabaseDialog.button.Explore=\ Explorer
SQLEditor.Log.SQLExecError=Erreur lors de l''ex\u00E9cution de l''instruction SQL\: {0}\n{1}
SQLStatementDialog.ViewSQL.Title=Instructions SQL
PreviewRowsDialog.Header=Lignes de l''\u00E9tape\: {0}
DatabaseDialog.label.ServerHostname=Nom du serveur h\u00F4te
DatabaseDialog.ErrorParameters2.description=Veuillez svp vous assurer que tous les param\u00E8tres requis sont bien renseign\u00E9s\:\n{0}
DatabaseExplorerDialog.Error.RetrieveLayout=Impossible de r\u00E9cup\u00E9rer les informations depuis la table.
EnterOptionsDialog.CopyOrDistributeDialog.Label=Afficher choix "copier ou distribuer"
SQLStatementDialog.TableCol.Connection=Connexion
EnterOptionsDialog.ReplaceDB.Tooltip=Si cette option est s\u00E9lectionn\u00E9e, les connexions seront remplac\u00E9es par celles du traitement charg\u00E9 ou import\u00E9.\nVous pouvez \u00EAtre alert\u00E9 si vous s\u00E9lectionnez l''option ci-dessus.
DatabaseExplorerDialog.Menu.ShowSize=Nombre de lignes de [{0}]
EnterValueDialog.Type.Label=Type\:
EnterValueDialog.Title=Saisissez valeur
EnterValueDialog.TestResult.Message=Le r\u00E9sultat est\:\n\n{0}
DatabaseDialog.report.ConnectionWithPartError=Erreur durant la connexion \u00E0 la base de donn\u00E9es [{0}] avec l''id partition [{1}] \: {2}
DatabaseDialog.label.UseClustering=Utiliser le grappage
EnterListDialog.AddAll.Tooltip=Ajouter tous les \u00E9l\u00E9ments de la gauche
StepFieldsDialog.TableCol.Length=Longueur
CheckResultDialog.Result.Label=R\u00E9sultat
GetQueryFieldsProgressDialog.Error.Title=Erreur lors de la r\u00E9cup\u00E9ration des informations
XulDatabaseDialog.Error.Dialog=Erreur g\u00E9n\u00E9rale
DatabaseExplorer.Actions=Actions
DatabaseExplorer.Button.Cancel=&Annuler
DatabaseExplorer.Button.Ok=&Valider
DatabaseExplorer.DDL=DDL
DatabaseExplorer.DataProfile=Profilage de données
DatabaseExplorer.Preview100=Prévisualiser les 100 premières lignes
DatabaseExplorer.PreviewX=Prévisualiser les x premières lignes
DatabaseExplorer.RowCount=Retourner le nombre total de lignes
DatabaseExplorer.SelectConnection=Sélection de connexion
DatabaseExplorer.ShowLayout=Afficher les colonnes
DatabaseExplorer.Title=Explorer la base de données
DatabaseExplorer.Truncate=Tronquer la table
DatabaseExplorer.UseCurrent=Utiliser la connexion actuelle
DatabaseExplorer.ViewSQL=Afficher SQL
tooltip_expand_collapse=Dérouler/Replier l''arborescence
tooltip_refresh=Actualiser l''arborescence

View File

@ -0,0 +1,253 @@
#File generated by Hitachi Vantara Translator for package 'org.pentaho.di.ui.core.database.dialog' in locale 'it_IT'
#
#
#Fri Apr 26 11:08:49 CEST 2013
EnterMappingDialog.HideUsedSources=Nascondere campi d''origine assegnati?
EnterOptionsDialog.ShowSaveConfirmation.Label=Mostrare la finestra "Salva"?
DatabaseExplorerDialog.Title=Explorer database sulla connessione [{0}]
DatabaseExplorerDialog.TableSize.Message=La tabella ''{0}'' contiene {1} righe
EnterOptionsDialog.EnableAutoCollapseCoreObjectTree.Label=Auto collassare albero palette?
EnterOptionsDialog.ReplaceDB.Label=Rimpiazzare le connessioni esistenti su apri/importa?
EnterOptionsDialog.DialogMiddlePercentage.Label=Finestra di percentuale intermedia\:
CheckResultDialog.Button.EditOriginStep=Modifica passo d''origine
EnterOptionsDialog.General.Label=Generale
CheckResultDialog.Result.Label=Risultato
EnterOptionsDialog.ShowRepoDialog.Label=Mostrare finestra repository all''avvio?
EnterOptionsDialog.Button.Edit.Tooltip=Modifica l''opzione
EnterOptionsDialog.ClearCustomParameters.Question=Vuoi davvero cancellare tutti i flag e parametri personalizzati nelle finestre dei passi e dei plugin?
EnterOptionsDialog.OnlyActiveFile.Label=Mostrare solo il file attivo nell''albero principale?
EnterOptionsDialog.UseOSLook.Label=Utilizzare look del Sistema Operativo?
EnterOptionsDialog.CanvasAntiAliasing.Label=Anti-aliasing delle finestre?
EnterSearchDialog.DB.Label=Ricerca connessioni database
SQLEditor.Log.SQLExecuted=Esecuzione SQL\: {0}\r\n
DatabaseDialog.SQLTab.tooltip=Specificare l''SQL da eseguire dopo la connessione
DatabaseDialog.column.PoolParameter=Parametro di pool
GetPreviewTableProgressDialog.Error.Message=Si \u00E8 verificato un errore durante il recupero delle informazioni dal database\!
CheckResultDialog.TextDialog.SubtitlePlural=Messaggi\:
SQLEditor.Button.ClearCache=&Pulisci cache
DatabaseExplorerDialog.UnexpectedProfilingError.Title=Errore di profilo
DatabaseDialog.ErrorParameters.title=Errore\!
DatabaseDialog.ExplorerNotImplemented.Title=Spiacente
DatabaseExplorerDialog.PreviewTable.Title=Limite dell''anteprima
EnterOptionsDialog.GridSize.Label=Dimensione griglia
EnterMappingDialog.Button.Add=&Aggiungi
DatabaseExplorerDialog.Tables.Label=Tabelle
DatabaseDialog.tooltip.DbType=Parametri extra da impostare nell''URL per connettersi al database
DatabaseExplorerDialog.Menu.OpenSQL=Apri SQL per [{0}]
DatabaseDialog.button.Explore=Esplora
EnterOptionsDialog.OnlySaveUsedConnections.Label=Salvare in XML solamente le connessioni utilizzate?
DatabaseDialog.label.Sap=SAP ERP
DatabaseDialog.column.Username=Utente
DatabaseDialog.label.Username=Utente
GetQueryFieldsProgressDialog.Error.Title=Errore di ricezione dell''informazione
EnterOptionsDialog.DefaultLocale.Label=Lingua preferita\:
SQLEditor.Result.Title=Risultati degli statement SQL
DatabaseDialog.ExplorerNotImplemented.Message=Spiacente, l''explorer per questo database non \u00E8 stato ancora implementato.
EnterMappingDialog.Button.Guess=&Indovina
SQLEditor.ConnectionCacheCleared.Message=La cache della connessione di database ''{0}'' \u00E8 stata pulita
DatabaseDialog.OracleTab.title=Oracle
DatabaseDialog.JDBCOptions.Tab={0}\: aiuto opzioni JDBC
DatabaseDialog.button.ShowHelp=Mostra il testo d''aiuto sull''uso delle opzioni
DatabaseDialog.tooltip.Parameter=Il valori da impostare per i parametri
CheckResultDialog.Button.ViewMessage=Vedi messaggio
DatabaseDialog.label.SQLServerInstance=Nome istanza SQL Server
EnterOptionsDialog.AutoSplitHops.Tooltip=Se un passo \u00E8 disegnato su un hop e l''hop pu\u00F2 essere separato\r\nin modo che il nuovo passo stia fra i due originali.\r\nSe viene attivata quest''opzione ci\u00F2 avverr\u00E0 automaticamente, altrimenti verr\u00E0 mostrata una finestra di conferma.
DatabaseDialog.label.UseClustering=Utilizzare clustering?
EnterSearchDialog.FilterSelection.Label=Filtro
DatabaseDialog.label.AdvancedForceIdentifiersUpperCase=Forza tutti gli identificatori al carattere maiuscolo
XulDatabaseDialog.Error.ResourcesNotFound.Title=Le risorse di stringa per la finestra non sono state trovate
SQLEditor.ConnectionCacheCleared.Title=Cache pulita
EnterOptionsDialog.HelpToolTipsEnabled.Label=Mostrare suggerimenti per l''aiuto dei tool?
DatabaseDialog.ClusterTab.tooltip=Informazioni opzionali sul clustering
DatabaseDialog.button.Test=Prova
CheckResultDialog.Stepname.Label=Nome del passo
EnterOptionsDialog.MaxNrHistLinesSize.Label=Numero massimo di linee nelle viste dello storico log
DatabaseDialog.label.Language=Linguaggio
DatabaseDialog.label.Options=Opzioni
DatabaseDialog.label.DriverClass=Classe di driver
EnterMappingDialog.TargetFields.Label=Campi di destinazione\:
SQLEditor.WholeCacheCleared.Message=L''intera cache del database \u00E8 stata ripulita
SQLEditor.Log.OnPartition=sulla partizione ''{0}''
EnterSearchDialog.Shell.Title=Ricerca metadati
DatabaseDialog.ClusterTab.title=Cluster
SQLEditor.Button.ClearCache.Tooltip=Utilizzare questo bottone se i risultati sopra non corrispondono all''attuale situazione del database.\r\nLa cache di database diventa invalida altri strumenti oltre a Kettle sono utilizzati per creare od alterare le tabelle nel database.
EnterOptionsDialog.ClearCustomParameters.Label=Pulire i parametri personalizzati (passi / plugin)\:
DatabaseDialog.ErrorConnectionInfo.description=Impossibile ricevere le informazioni sulla connessione
SQLEditor.Error.CouldNotConnect.Message=Impossibile connettersi al database\!\nPrego controllare i parametri di connessione per la connesione [{0}]\n{1}
EnterMappingDialog.AutoTargetSelection.Label=Selezione automatica della destinazione?
DatabaseDialog.label.UseConnectionPool=Utilizza pool di connessione
DatabaseDialog.label.SystemNumber=Numero sistema
CheckResultDialog.Remarks.Label=Rimarche\:
DatabaseDialog.column.PoolDescription=Descrizione parametro
DatabaseDialog.label.ServerHostname=Nome host server
DatabaseDialog.HelpText.title=Opzioni testo d''aiuto
DatabaseDialog.FeatureList.title=List feature
DatabaseDialog.tooltip.PartitionId=Parametri extra da impostare nell''URL per connettersi al database
DatabaseDialog.GenericTab.title=Generico
EnterMappingDialog.SourceFields.Label=Campi origine\:
DatabaseDialog.label.ConnectionType=Tipo di connessione
EnterOptionsDialog.ShowWelcomePage.Label=Mostrare pagina di benvenuto all''avvio?
DatabaseDialog.label.TablespaceForIndexes=Tablespace per gli indici
SQLEditor.ErrorExecSQL.Message=Errore nell''esecuzione del seguente SQL\:\r\n\r\n{0}
EnterOptionsDialog.ReplaceDB.Tooltip=Se quest''opzione \u00E8 attivata le connessioni di database esistenti verranno rimpiazzate durante l''apertura o l''importazione delle trasformazioni.\r\nSe una finestra di conferma venga mostrata \u00E8 deciso dall''opzione di cui sopra.
DatabaseExplorerDialog.Views.Label=Viste
EnterOptionsDialog.DefaultPreviewSize.Label=Numero di linee di default nella finestra d''anteprima\:
DatabaseExplorerDialog.NoRows.Title=Nessuna riga
GetDatabaseInfoProgressDialog.Error.Message=Si \u00E8 verificato un errore durante il recupero delle informazioni dal database\!
DatabaseDialog.column.Hostname=Nome host
DatabaseExplorerDialog.TargetDatabase.Message=Seleziona il database di destinazione\:
DatabaseDialog.tooltip.UseClustering=Abilitare clustering per aggiungere tutti i tipi di informazione sul clustering.
DatabaseExplorerDialog.Menu.PreviewN=&Anteprima delle prime ... righe di [{0}]
EnterMappingDialog.Title=Inserire mappatura
CheckResultDialog.ShowSuccessful.Label=Mostra risultati di &successo
DatabaseExplorerDialog.Menu.ShowLayout=Mostra layout di [{0}]
EnterOptionsDialog.GridSize.ToolTip=Rende le icone agganciate alla griglia e permette un pi\u00F9 agevole allineamento ai passi.
DatabaseExplorerDialog.Catalogs.Label=Cataloghi
SQLEditor.NoRows.Message=Nessun risultato trovato per lo statement SQL\:\r\n\r\n{0}
DatabaseDialog.MySQLTab.title=MySQL
EnterMappingDialog.Button.Delete=&Cancella
DatabaseDialog.HelpText.description=Questo \u00E8 il testo d''aiuto per [{0}]\:
DatabaseDialog.label.MaximumPoolSize=Dimensione massima del pool
DatabaseExplorerDialog.UnexpectedProfilingError.Message=Errore di profilo\:
EnterOptionsDialog.NoteFont.Label=Font per le note\:
DatabaseDialog.label.MySQLStreamResults=Utilizza il risultato dello streaming (emulazione cursore)
XulDatabaseDialog.Error.HandleXul=Errore nel lavorare con la definizione XUL
EnterOptionsDialog.LineWidth.Label=Larghezza linea nello spazio di lavoro\:
EnterOptionsDialog.GraphFont.Label=Font nello spazio di lavoro\:
DatabaseExplorerDialog.Menu.GenDDL=Genera DDL
EnterOptionsDialog.BackgroundColorGraph.Label=Colore di sfondo del piano di lavoro\:
DatabaseDialog.column.PoolValue=Valore
EnterSearchDialog.Note.Tooltip=Ricerca note
SQLEditor.NoRows.Title=Nessun risultato
EnterOptionsDialog.OpenLastFileStartup.Label=Aprire l''ultimo file all''avvio?
EnterOptionsDialog.TabColor.Label=Colore tab\:
Dialog.Error.Header=Errore
XulDatabaseDialog.Error.ResourcesNotFound=Impossibile trovare il bundle delle risorse per il locale primario {0}, errore locale {1}
EnterOptionsDialog.BackgroundColor.Label=Colore di sfondo\:
DatabaseDialog.column.DatabaseName=Nome del database
SQLEditor.ClearWholeCache.Title=Pulire l''intera cache?
GetPreviewTableProgressDialog.Error.Title=Errore di ricezione dell''informazione
DatabaseDialog.DbTab.title=Generale
EnterOptionsDialog.ReplaceDBAsk.Label=Chiedere di rimpiazzare le connessioni esistenti su apri/importa?
DatabaseDialog.ConnectionReport.title=Report sulla connessione
DatabaseDialog.label.ConnectionName=Nome di connessione
DatabaseDialog.DatabaseConnectionTest.title=Test di connessione al database
DatabaseDialog.column.Port=Porta
DatabaseDialog.ErrorHelpText.description=Impossibile ricevere il testo d''aiuto. Prego assicurarsi che tutti i parametri richiesti siano inseriti correttamente\!
EnterOptionsDialog.MaxLogLineTimeout.Label=Timeout in minuti per la memorizzazione del log centrale
DatabaseExplorerDialog.NoRows.Message=La tabella non contiene righe
DatabaseExplorerDialog.Menu.GenDDLOtherConn=Genera DDL per altra connessione
SQLEditor.Error.CouldNotConnect.Title=Impossibile connettersi
EnterSearchDialog.Note.Label=Ricerca note
EnterOptionsDialog.AskOnExit.Label=Chiedere conferma per l''uscita?
DatabaseExplorerDialog.TableLayout.ShellText=Layout tabella
DatabaseExplorerDialog.Synonyms.Label=Sinonimi
EnterOptionsDialog.CopyOrDistributeDialog.Tooltip=Se quest''opzione \u00E8 attivata e un passo sta per consegnare i dati a pi\u00F9 di un passo, una finestra chiede \r\nall''utente se i dati debbano essere distribuiti a ciascun passo ricevente o se ciascun passo ricevente debba ricevere gli stessi dati (copia).\r\nSe quest''opzione non \u00E8 attivata il comportamento di default \u00E8 copiare i dati.
DatabaseDialog.ErrorParameters2.title=Errore\!
DatabaseExplorerDialog.Menu.Preview100=&Anteprima delle prime 100 righe di [{0}]
DatabaseDialog.GenericTab.tooltip=Parametri nel caso si voglia utilizzare un database generico con un driver JDBC non supportato
EnterMappingDialog.AutoSourceSelection.Label=Selezione automatica dell''origine?
DatabaseDialog.ConnectionReport.description=Ecco il report sulla connessione
DatabaseExplorerDialog.PreviewTable.Message=Numero di linee per l''anteprima (0 significa tutte le linee)
DatabaseDialog.FeatureListError.title=Errore\!
EnterOptionsDialog.FixedWidthFont.Label=Font a larghezza fissa\:
EnterOptionsDialog.UseDatabaseCache.Label=Utilizzare la cache del database?
DatabaseDialog.ErrorParameters2.description=Prego assicurarsi che tutti i parametri richiesti siano inseriti correttamente\:\r\n{0}
GetTableSizeProgressDialog.Error.Title=Errore nel recupero delle informazioni
EnterOptionsDialog.Branding.Label=Mostrare logo
XulDatabaseDialog.Error.Dialog=Errore generale nella finestra
EnterOptionsDialog.Title=Opzioni Kettle
DatabaseDialog.label.AdvancedQuoteAllFields=Quota fra virgolette tutti gli identificatori nel database
DatabaseDialog.column.PartitionId=ID partizione
DatabaseDialog.ErrorParameters.description=Prego assicurarsi che tutti i parametri richiesti siano inseriti correttamente\!
EnterOptionsDialog.IconSize.Label=Dimensione icona nello spazio di lavoro\:
EnterMappingDialog.HideUsedTargets=Nascondere campi di destinazione assegnati?
DatabaseExplorerDialog.Menu.ShowSize=Numero di righe di [{0}]
EnterOptionsDialog.ClearCustomParameters.Confirmation=I flag ed i parametri personalizzati sono stati cancellati.
CheckResultDialog.TextDialog.Title=Vedi messaggio
EnterOptionsDialog.LookAndFeel.Label=Look && Feel
SQLEditor.LineNr.Label=Numero linea\: {0}
CheckResultDialog.Title=Risultati dei controlli sulla trasformazione
SQLEditor.ErrorExecSQL.Title=Errore di esecuzione SQL
EnterOptionsDialog.ToolTipsEnabled.Label=Mostrare suggerimenti?
DatabaseExplorerDialog.TargetDatabase.Title=Database di destinazione
DatabaseExplorerDialog.TableLayout.OriginText=Tabella
SQLEditor.ResultRows.Title=statement SQL \#{0}
EnterOptionsDialog.MaxNrLogLinesSize.Label=N\u00B0 massimo di linee nelle finestre di log
DatabaseDialog.column.Value=Valore
DatabaseDialog.PoolTab.title=Pooling
DatabaseDialog.SQLTab.title=SQL
DatabaseDialog.FeatureListError.description=Impossibile recuperare la lista delle feature. Prego assicurarsi che tutti i parametri richiesti siano stati inseriti correttamente\!
DatabaseDialog.ErrorHelpText.title=Errore\!
DatabaseDialog.IfxTab.title=Informix
EnterMappingDialog.ResultMappings.Label=Mappature\:
SQLEditor.Position.Label=Linea {0} colonna {1}
DatabaseDialog.column.DbType=Tipo database
DatabaseExplorerDialog.NoConnectionsKnown.Message=A questo punto nessuna connessione \u00E8 disponibile per generare DDL.
DatabaseDialog.label.SapClient=SAP Client
CheckResultDialog.HideSuccessful.Label=Nascondi risultati di &successo
DatabaseDialog.tooltip.Options=Opzioni extra da impostare nell''URL
CheckResultDialog.WarningsErrors.Label=Avvisi ed errori\:
DatabaseDialog.label.Statements=Gli statement da eseguire appena dopo la connessione (separati da ;)
DatabaseExplorerDialog.Menu.ProfileTable=Profilo di dati ''{0}''
GetDatabaseInfoProgressDialog.Error.Title=Errore nel prelievo delle informazioni
DatabaseDialog.label.Password=Password
DatabaseDialog.column.Password=Password
DatabaseDialog.label.Url=URL
DatabaseDialog.label.AdvancedForceIdentifiersLowerCase=Forza tutti gli identificatori al carattere minuscolo
DatabaseExplorerDialog.Error.GenDDL=Impossibile generare il DDL
EnterOptionsDialog.ShadowSize.Label=Dimensione dell''ombra nello spazio di lavoro\:
XulDatabaseDialog.Error.Title=Errore
DatabaseDialog.label.InformixServername=Nome server Informix
EnterOptionsDialog.AutoSplitHops.Label=Separare automaticamente gli hop?
DatabaseExplorerDialog.TableSize.Title=Numero di righe
EnterOptionsDialog.Button.Reset=Reset
SQLEditor.Button.Execute=&Esegui
DatabaseDialog.tooltip.Hostname=Valori da impostare per i parametri
EnterOptionsDialog.CanvasIndicateSlowSteps.Label=Mostra i passi della trasformazione collo di bottiglia
DatabaseDialog.label.PortNumber=Numero porta
EnterOptionsDialog.FailoverLocale.Label=Lingua alternativa\:
DatabaseDialog.label.InitialPoolSize=Dimensione iniziale del pool
DatabaseDialog.Shell.title=Informazioni di connessione
DatabaseExplorerDialog.Menu.Truncate=Tronca tabella [{0}]
DatabaseDialog.label.UseDoubleDecimalSeparator=Utilizza .. per separare lo schema e la tabella
DatabaseExplorerDialog.Menu.DisplayColumns=Mostra colonne
SQLEditor.Editor.Label=statement SQL, separati da punto e virgola '';''
DatabaseExplorerDialog.Schemas.Label=Schema
SQLEditor.ClearWholeCache.Message=Vuoi pulire completamente la cache?\r\nSe viene premuto "No" soltanto la cache della connessione del database ''{0}'' viene pulita
GetTableSizeProgressDialog.Error.Message=Si \u00E8 verificato un errore durante il recupero delle informazioni dal database\!
DatabaseDialog.MSSQLTab.title=SQL Server
EnterOptionsDialog.AutoSave.Label=Salvare automaticamente i file cambiati?
DatabaseExplorerDialog.Error.RetrieveLayout=Impossibile recuperare il layout della tabella.
EnterSearchDialog.Step.Label=Passi di ricerca
EnterOptionsDialog.CanvasIndicateSlowSteps.Tooltip=Se abilitato, disegna un bordo animato dentro i passi della trasformazione che ricevono righe di input pi\u00F9 velocemente di quelle che posso processare (passi collo di bottiglia).
EnterOptionsDialog.Button.Reset.Tooltip=Azzera quest''opzione al valore di default
DatabaseExplorerDialog.Procedures.Label=Procedure
EnterOptionsDialog.Button.Edit=Cambia
DatabaseDialog.label.TablespaceForData=Tablespace per i dati
DatabaseDialog.label.PoolParameters=Parametri di connessione di pooling
DatabaseExplorerDialog.NoConnectionsKnown.Title=Nessuna connessione nota
SQLEditor.WholeCacheCleared.Title=Cache pulita
EnterOptionsDialog.CopyOrDistributeDialog.Label=Mostrare finestra "copia o distribuisci"?
CheckResultDialog.Remark.Label=Rimarca
SQLEditor.Result.Message=Gli statement SQL hanno i seguenti risultati
EnterSearchDialog.Step.Tooltip=Passi di ricerca
EnterOptionsDialog.ClearCustomParameters.Tooltip=Cancella tutti i flag e parametri personalizzati nelle finestre dei passi e dei plugin
EnterOptionsDialog.ShowTipsStartup.Label=Mostrare suggerimento all''avvio?
GetDatabaseInfoProgressDialog.Error.GettingInfoTable=Rilevato un problema nel prelevare le informazioni dal database\: {0}
EnterSearchDialog.DB.Tooltip=Ricerca connessioni database
SQLEditor.Log.SQLExecError=Errore durante l''esecuzione\: {0}\r\n{1}
DatabaseDialog.label.DatabaseName=Nome database
DatabaseDialog.AdvancedTab.title=Avanzato
DatabaseDialog.column.Parameter=Parametro
CheckResultDialog.TextDialog.Subtitle=Messaggio\:
SQLEditor.Title=Editor SQL semplice
GetQueryFieldsProgressDialog.Error.Message=Si \u00E8 verificato un errore durante il recupero delle informazioni dal database\!
DatabaseDialog.label.AccessMethod=Metodo di accesso
DatabaseDialog.Exception.IncorrectParameter=Parametro/i di database incorretto/i\! Controlla questi parametri\:
EnterOptionsDialog.ReplaceDBAsk.Tooltip=Se le trasformazioni sono aperte o importate e le connessioni di database esistono con lo stesso nome di quelle correnti,\r\npotrebbe essere mostrata una finestra per chiedere all''utente se rimpiazzare le connessioni esistenti oppure no.
DatabaseDialog.column.PoolDefault=Valore di default
DatabaseDialog.button.FeatureList=Lista delle feature
SQLEditor.Log.StatsExecuted={0} statement SQL eseguito
EnterOptionsDialog.MaximumUndo.Label=Massimo livello di annullamento (Undo)\:
EnterOptionsDialog.ClearCustomParameters.Title=Domanda

View File

@ -0,0 +1,339 @@
#File generated by Hitachi Vantara Translator for package 'org.pentaho.di.ui.core.database.dialog' in locale 'en_US'
CheckResultDialog.Button.EditOriginStep=\u5143\u306e\u30b9\u30c6\u30c3\u30d7\u3092\u7de8\u96c6
CheckResultDialog.Button.ViewMessage=\u30E1\u30C3\u30BB\u30FC\u30B8\u8868\u793A
CheckResultDialog.HideSuccessful.Label=\u6210\u529F\u7D50\u679C\u3092\u96A0\u3059(&)
CheckResultDialog.Remark.Label=\u8AAC\u660E
CheckResultDialog.Remarks.Label=\u8AAC\u660E\:
CheckResultDialog.Result.Label=\u7D50\u679C
CheckResultDialog.ShowSuccessful.Label=\u6210\u529F\u7D50\u679C\u8868\u793A(&s)
CheckResultDialog.Stepname.Label=\u30B9\u30C6\u30C3\u30D7\u540D
CheckResultDialog.TextDialog.Subtitle=\u30E1\u30C3\u30BB\u30FC\u30B8\:
CheckResultDialog.TextDialog.SubtitlePlural=\u30E1\u30C3\u30BB\u30FC\u30B8\:
CheckResultDialog.TextDialog.Title=\u30E1\u30C3\u30BB\u30FC\u30B8\u8868\u793A
CheckResultDialog.Title=\u30C7\u30FC\u30BF\u5909\u63DB\u30C1\u30A7\u30C3\u30AF\u306E\u7D50\u679C
#Wed Sep 02 18:46:59 CEST 2009
CheckResultDialog.WarningsErrors.Label=\u8b66\u544a\u3068\u30a8\u30e9\u30fc:
ConditionDialog.Title=\u6761\u4ef6\u3092\u5165\u529b
DatabaseDialog.AdvancedTab.title=\u8A73\u7D30
DatabaseDialog.ClusterTab.title=\u30AF\u30E9\u30B9\u30BF\u30FC
DatabaseDialog.ClusterTab.tooltip=\u30AA\u30D7\u30B7\u30E7\u30F3\u30AF\u30E9\u30B9\u30BF\u60C5\u5831
DatabaseDialog.ConnectionReport.description=\u63A5\u7D9A\u30EC\u30DD\u30FC\u30C8\u304C\u3042\u308A\u307E\u3059
DatabaseDialog.ConnectionReport.title=\u63A5\u7D9A\u7D50\u679C
DatabaseDialog.DatabaseConnectionTest.title=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u63A5\u7D9A\u30C6\u30B9\u30C8
DatabaseDialog.DbTab.title=\u4E00\u822C
DatabaseDialog.ErrorConnectionInfo.description=\u63A5\u7D9A\u60C5\u5831\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093
DatabaseDialog.ErrorConnectionInfo.title=\u30A8\u30E9\u30FC
DatabaseDialog.ErrorHelpText.description=\u30D8\u30EB\u30D7\u30C6\u30AD\u30B9\u30C8\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3002\u3059\u3079\u3066\u306E\u5FC5\u9808\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u6B63\u3057\u304F\u5165\u529B\u3055\u308C\u3066\u3044\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
DatabaseDialog.ErrorHelpText.title=\u30A8\u30E9\u30FC
DatabaseDialog.ErrorParameters.description=\u3059\u3079\u3066\u306E\u5FC5\u9808\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u6B63\u3057\u304F\u5165\u529B\u3055\u308C\u3066\u3044\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
DatabaseDialog.ErrorParameters.title=\u30A8\u30E9\u30FC
DatabaseDialog.ErrorParameters2.description=\u3059\u3079\u3066\u306E\u5FC5\u9808\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u6B63\u3057\u304F\u5165\u529B\u3055\u308C\u305F\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\:\n{0}
DatabaseDialog.ErrorParameters2.title=\u30A8\u30E9\u30FC
DatabaseDialog.Exception.IncorrectParameter=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u4E0D\u6B63\u3067\u3059\u3002\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044 \:
DatabaseDialog.ExplorerNotImplemented.Message=\u3053\u306E\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u691C\u7D22\u306F\u3067\u304D\u307E\u305B\u3093\u3002
DatabaseDialog.ExplorerNotImplemented.Title=\u78BA\u8A8D
DatabaseDialog.FeatureList.title=\u30D7\u30ED\u30D1\u30C6\u30A3\u30EA\u30B9\u30C8
DatabaseDialog.FeatureList.title2="\u6a5f\u80fd\u30ea\u30b9\u30c8\:"
DatabaseDialog.FeatureListError.description=\u30D7\u30ED\u30D1\u30C6\u30A3\u30EA\u30B9\u30C8\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3002\u3059\u3079\u3066\u306E\u5FC5\u9808\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u6B63\u3057\u304F\u5165\u529B\u3055\u308C\u3066\u3044\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
DatabaseDialog.FeatureListError.title=\u30A8\u30E9\u30FC
DatabaseDialog.GenericTab.title=\u4E00\u822C
DatabaseDialog.GenericTab.tooltip=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044JDBC\u30C9\u30E9\u30A4\u30D0\u3067\u4E00\u822C\u7684\u306A\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u4F7F\u3046\u5834\u5408\u306E\u8A2D\u5B9A
DatabaseDialog.HelpText.description=\u30D8\u30EB\u30D7\u30C6\u30AD\u30B9\u30C8 [{0}] \:
DatabaseDialog.HelpText.title=\u30aa\u30d7\u30b7\u30e7\u30f3\u30d8\u30eb\u30d7\u30c6\u30ad\u30b9\u30c8
DatabaseDialog.IfxTab.title=Informix
DatabaseDialog.JDBCOptions.Tab={0}\: JDBC \u30AA\u30D7\u30B7\u30E7\u30F3\u30D8\u30EB\u30D7
DatabaseDialog.MSSQLTab.title=SQL Server
DatabaseDialog.MySQLTab.title=MySQL
DatabaseDialog.OracleTab.title=Oracle
DatabaseDialog.PoolTab.title=\u30D7\u30FC\u30EA\u30F3\u30B0
DatabaseDialog.SQLTab.title=SQL
DatabaseDialog.SQLTab.tooltip=\u63A5\u7D9A\u5F8C\u306B\u5B9F\u884C\u3059\u308BSQL\u3092\u6307\u5B9A\u3057\u307E\u3059
DatabaseDialog.Shell.title=\u63A5\u7D9A\u60C5\u5831
DatabaseDialog.button.Explore=\u691C\u7D22
DatabaseDialog.button.FeatureList=\u30EA\u30B9\u30C8
DatabaseDialog.button.ShowHelp=\u30AA\u30D7\u30B7\u30E7\u30F3\u4F7F\u7528\u306B\u95A2\u3057\u3066\u30D8\u30EB\u30D7\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A
DatabaseDialog.button.Test=\u30C6\u30B9\u30C8
DatabaseDialog.column.DatabaseName=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u540D
DatabaseDialog.column.DbType=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30BF\u30A4\u30D7
DatabaseDialog.column.Hostname=\u30DB\u30B9\u30C8\u540D
DatabaseDialog.column.Parameter=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
DatabaseDialog.column.PartitionId=\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3ID
DatabaseDialog.column.Password=\u30D1\u30B9\u30EF\u30FC\u30C9
DatabaseDialog.column.PoolDefault=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024
DatabaseDialog.column.PoolDescription=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u8AAC\u660E
DatabaseDialog.column.PoolParameter=\u30D7\u30FC\u30EB\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
DatabaseDialog.column.PoolValue=\u5024
DatabaseDialog.column.Port=\u30DD\u30FC\u30C8
DatabaseDialog.column.SelectPoolParameter=\u8A2D\u5B9A\u3059\u308B\u30D7\u30FC\u30EB\u30D1\u30E9\u30E1\u30FC\u30BF\u9078\u629E
DatabaseDialog.column.Username=\u30E6\u30FC\u30B6\u30FC\u540D
DatabaseDialog.column.Value=\u5024
DatabaseDialog.label.AccessMethod=\u30A2\u30AF\u30BB\u30B9\u65B9\u6CD5
DatabaseDialog.label.AdvancedForceIdentifiersLowerCase=\u3059\u3079\u3066\u306e\u8b58\u5225\u5b50\u3092\u5c0f\u6587\u5b57\u306b\u3059\u308b
DatabaseDialog.label.AdvancedForceIdentifiersUpperCase=\u5927\u6587\u5B57\u306B\u3059\u3079\u3066\u306E\u8B58\u5225\u5B50\u3092\u5F37\u8981\u3059\u308B
DatabaseDialog.label.AdvancedQuoteAllFields=\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u3059\u3079\u3066\u306e\u8b58\u5225\u5b50\u3092\u30af\u30aa\u30fc\u30c8\u3067\u56f2\u3080
DatabaseDialog.label.ConnectionName=\u63A5\u7D9A\u540D
DatabaseDialog.label.ConnectionType=\u63A5\u7D9A\u30BF\u30A4\u30D7
DatabaseDialog.label.DatabaseName=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u540D
DatabaseDialog.label.DriverClass=\u30C9\u30E9\u30A4\u30D0\u30FC\u30AF\u30E9\u30B9
DatabaseDialog.label.InformixServername=Informix \u30B5\u30FC\u30D0\u30FC\u540D
DatabaseDialog.label.InitialPoolSize=\u521D\u671F\u30D7\u30FC\u30EB\u30B5\u30A4\u30BA
DatabaseDialog.label.Language=\u8A00\u8A9E
DatabaseDialog.label.MaximumPoolSize=\u6700\u5927\u30D7\u30FC\u30EB\u30B5\u30A4\u30BA
DatabaseDialog.label.MySQLStreamResults=\u7D50\u679C\u30B9\u30C8\u30EA\u30FC\u30DF\u30F3\u30B0\u3092\u4F7F\u7528(\u30AB\u30FC\u30BD\u30EB\u30A8\u30DF\u30E5\u30EC\u30FC\u30B7\u30E7\u30F3)
DatabaseDialog.label.Options=\u30AA\u30D7\u30B7\u30E7\u30F3
DatabaseDialog.label.Password=\u30D1\u30B9\u30EF\u30FC\u30C9
DatabaseDialog.label.PoolParameters=\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u30D7\u30FC\u30EA\u30F3\u30B0\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
DatabaseDialog.label.PortNumber=\u30DD\u30FC\u30C8\u756A\u53F7
DatabaseDialog.label.PreferredSchemaName=\u63A8\u5968\u306E\u30B9\u30AD\u30FC\u30DE\u540D\u3002\u30B9\u30AD\u30FC\u30DE\u3092\u6307\u5B9A\u3057\u306A\u3044\u3068\u304D\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002
DatabaseDialog.label.SQLServerInstance=SQL\u30b5\u30fc\u30d0\u30fc\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u540d
DatabaseDialog.label.Sap=SAP ERP
DatabaseDialog.label.SapClient=SAP\u30af\u30e9\u30a4\u30a2\u30f3\u30c8
DatabaseDialog.label.ServerHostname=\u30B5\u30FC\u30D0\u30FC\u30DB\u30B9\u30C8\u540D
DatabaseDialog.label.Statements=\u63A5\u7D9A\u76F4\u5F8C\u306B\u5B9F\u884C\u3059\u308BSQL\u6587 (; \u3067\u533A\u5207\u308B)
DatabaseDialog.label.SystemNumber=\u30B7\u30B9\u30C6\u30E0\u756A\u53F7
DatabaseDialog.label.TablespaceForData=\u30C7\u30FC\u30BF\u306E\u305F\u3081\u306E\u30C6\u30FC\u30D6\u30EB\u30B9\u30DA\u30FC\u30B9
DatabaseDialog.label.TablespaceForIndexes=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306E\u305F\u3081\u306E\u30C6\u30FC\u30D6\u30EB\u30B9\u30DA\u30FC\u30B9
DatabaseDialog.label.Url=URL
DatabaseDialog.label.UseClustering=\u30AF\u30E9\u30B9\u30BF\u30EA\u30F3\u30B0\u4F7F\u7528
DatabaseDialog.label.UseConnectionPool=\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u30D7\u30FC\u30EB\u4F7F\u7528
DatabaseDialog.label.UseDoubleDecimalSeparator=..\u3067\u30b9\u30ad\u30fc\u30de\u3068\u30c6\u30fc\u30d6\u30eb\u3092\u5206\u3051\u308b
DatabaseDialog.label.Username=\u30E6\u30FC\u30B6\u30FC\u540D
DatabaseDialog.tooltip.DbType=\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u7528URL\u306b\u8a2d\u5b9a\u3059\u308b\u8ffd\u52a0\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc
DatabaseDialog.tooltip.Hostname=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306B\u8A2D\u5B9A\u3059\u308B\u5024
DatabaseDialog.tooltip.Options=URL\u3067\u8A2D\u5B9A\u3059\u308B\u8FFD\u52A0\u30AA\u30D7\u30B7\u30E7\u30F3
DatabaseDialog.tooltip.Parameter=\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u8A2D\u5B9A\u3059\u308B\u5024
DatabaseDialog.tooltip.PartitionId=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u63A5\u7D9A\u3059\u308BURL\u3067\u8A2D\u5B9A\u3059\u308B\u7279\u5225\u306A\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
DatabaseDialog.tooltip.UseClustering=\u3059\u3079\u3066\u306E\u7A2E\u985E\u306E\u30AF\u30E9\u30B9\u30BF\u30EA\u30F3\u30B0\u60C5\u5831\u3092\u8FFD\u52A0\u3059\u308B\u30AF\u30E9\u30B9\u30EA\u30F3\u30B0\u3092\u53EF\u80FD\u306B\u3059\u308B\u3002
DatabaseExplorer.Actions=\u6A5F\u80FD
DatabaseExplorer.Button.Cancel=&Cancel
DatabaseExplorer.Button.Ok=&OK
DatabaseExplorer.DDL=DDL
DatabaseExplorer.DataProfile=\u30C7\u30FC\u30BF\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB
DatabaseExplorer.Preview100=\u6700\u521D\u306E100\u884C\u30D7\u30EC\u30D3\u30E5\u30FC
DatabaseExplorer.PreviewX=x\u884C\u30D7\u30EC\u30D3\u30E5\u30FC
DatabaseExplorer.RowCount=\u884C\u6570\u30AB\u30A6\u30F3\u30C8
DatabaseExplorer.SelectConnection=\u63A5\u7D9A\u3092\u9078\u629E
DatabaseExplorer.ShowLayout=\u30EC\u30A4\u30A2\u30A6\u30C8\u8868\u793A
DatabaseExplorer.Title=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30A8\u30AF\u30B9\u30D7\u30ED\u30FC\u30E9\u30FC
DatabaseExplorer.Truncate=\u30C8\u30E9\u30F3\u30B1\u30FC\u30C8\u30C6\u30FC\u30D6\u30EB
DatabaseExplorer.UseCurrent=\u73FE\u5728\u306E\u63A5\u7D9A\u3092\u4F7F\u7528
DatabaseExplorer.ViewSQL=SQL\u30D3\u30E5\u30FC
DatabaseExplorerDialog.Catalogs.Label=\u30AB\u30BF\u30ED\u30B0
DatabaseExplorerDialog.Error.GenDDL=DDL\u3092\u751F\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002
DatabaseExplorerDialog.Error.RetrieveLayout=\u30C6\u30FC\u30D6\u30EB\u30EC\u30A4\u30A2\u30A6\u30C8\u3092\u8AAD\u307F\u51FA\u305B\u307E\u305B\u3093\u3067\u3057\u305F\u3002
DatabaseExplorerDialog.Menu.DisplayColumns=\u8868\u793A\u30AB\u30E9\u30E0
DatabaseExplorerDialog.Menu.GenDDL=Generate DDL
DatabaseExplorerDialog.Menu.GenDDLOtherConn=\u4ED6\u306E\u63A5\u7D9A\u306EDDL\u751F\u6210
DatabaseExplorerDialog.Menu.OpenSQL=[{0}] \u306ESQL\u3092\u958B\u304F
DatabaseExplorerDialog.Menu.Preview100=[{0}] \u306E\u6700\u521D\u306E100\u884C\u3092\u30D7\u30EC\u30D3\u30E5\u30FC(&P)
DatabaseExplorerDialog.Menu.PreviewN=[{0}] \u306E\u6700\u521D\u306E ... \u884C\u3092\u30D7\u30EC\u30D3\u30E5\u30FC(&P)
DatabaseExplorerDialog.Menu.ProfileTable=\u30C7\u30FC\u30BF\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB ''{0}''
DatabaseExplorerDialog.Menu.ShowLayout=[{0}] \u306E\u30EC\u30A4\u30A2\u30A6\u30C8\u3092\u8868\u793A
DatabaseExplorerDialog.Menu.ShowSize=[{0}] \u306E\u884C\u6570
DatabaseExplorerDialog.Menu.Truncate=\u30C8\u30E9\u30F3\u30B1\u30FC\u30C8\u30C6\u30FC\u30D6\u30EB [{0}]
DatabaseExplorerDialog.NoConnectionsKnown.Message=\u73FE\u5728\u306E\u3068\u3053\u308D\u3001\u4ED6\u306E\u63A5\u7D9A\u306FDDL\u3092\u751F\u6210\u3067\u304D\u307E\u305B\u3093\u3002
DatabaseExplorerDialog.NoConnectionsKnown.Title=\u63A5\u7D9A\u4E0D\u660E
DatabaseExplorerDialog.NoRows.Message=\u30C6\u30FC\u30D6\u30EB\u306F\u884C\u3092\u542B\u307F\u307E\u305B\u3093
DatabaseExplorerDialog.NoRows.Title=\u30EC\u30B3\u30FC\u30C9\u306A\u3057
DatabaseExplorerDialog.PreviewTable.Message=\u30D7\u30EC\u30D3\u30E5\u30FC\u884C\u6570 (0\u306F\u3059\u3079\u3066\u306E\u884C\u3092\u610F\u5473\u3057\u307E\u3059)
DatabaseExplorerDialog.PreviewTable.Title=\u30D7\u30EC\u30D3\u30E5\u30FC\u9650\u754C
DatabaseExplorerDialog.Procedures.Label=Procedures
DatabaseExplorerDialog.Schemas.Label=\u30B9\u30AD\u30FC\u30DE
DatabaseExplorerDialog.Synonyms.Label=Synonyms
DatabaseExplorerDialog.TableSize.Message=\u30C6\u30FC\u30D6\u30EB ''{0}'' \u5185\u5BB9 {1} \u884C
DatabaseExplorerDialog.TableSize.Title=\u30EC\u30B3\u30FC\u30C9\u6570
DatabaseExplorerDialog.Tables.Label=\u30C6\u30FC\u30D6\u30EB
DatabaseExplorerDialog.TargetDatabase.Message=\u30BF\u30FC\u30B2\u30C3\u30C8\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u9078\u629E\:
DatabaseExplorerDialog.TargetDatabase.Title=\u30BF\u30FC\u30B2\u30C3\u30C8\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
DatabaseExplorerDialog.Title=\u63A5\u7D9A [{0}] \u306E\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30A8\u30AF\u30B9\u30D7\u30ED\u30FC\u30E9\u30FC
DatabaseExplorerDialog.UnexpectedProfilingError.Message=\u4E88\u671F\u305B\u306C\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3057\u305F\:
DatabaseExplorerDialog.UnexpectedProfilingError.Title=\u30D7\u30ED\u30D5\u30A1\u30A4\u30EA\u30F3\u30B0\u30A8\u30E9\u30FC
DatabaseExplorerDialog.Views.Label=\u30D3\u30E5\u30FC
Dialog.Error.EnterInteger=\u6570\u5024\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002
Dialog.Error.Header=\u30A8\u30E9\u30FC
EnterConditionDialog.Title=\u30A8\u30E9\u30FC\u72B6\u6CC1
EnterListDialog.AddAll.Tooltip=\u5DE6\u306E\u30A2\u30A4\u30C6\u30E0\u3092\u3059\u3079\u3066\u8FFD\u52A0
EnterListDialog.AddOne.Tooltip=\u5DE6\u306E\u9078\u629E\u3057\u3066\u3044\u308B\u30A2\u30A4\u30C6\u30E0\u3092\u8FFD\u52A0
EnterListDialog.AvailableItems.Label=\u30A2\u30A4\u30C6\u30E0\:
EnterListDialog.RemoveAll.Tooltip=\u5DE6\u306E\u3059\u3079\u3066\u306E\u30A2\u30A4\u30C6\u30E0\u3092\u8FFD\u52A0
EnterListDialog.RemoveOne.Tooltip=\u53F3\u306E\u9078\u629E\u3057\u3066\u3044\u308B\u30A2\u30A4\u30C6\u30E0\u3092\u524A\u9664
EnterListDialog.Selection.Label=\u9078\u629E\:
EnterListDialog.Title=\u5165\u529B\u30EA\u30B9\u30C8
EnterMappingDialog.AutoSourceSelection.Label=\u81EA\u52D5\u3067\u30BD\u30FC\u30B9\u9078\u629E\u3059\u308B
EnterMappingDialog.AutoTargetSelection.Label=\u81EA\u52D5\u3067\u30BF\u30FC\u30B2\u30C3\u30C8\u9078\u629E\u3059\u308B
EnterMappingDialog.Button.Add=\u8FFD\u52A0(&A)
EnterMappingDialog.Button.Delete=\u524A\u9664(&D)
EnterMappingDialog.Button.Guess=\u63A8\u6E2C(&G)
EnterMappingDialog.HideUsedSources=\u5272\u308A\u5F53\u3066\u305F\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u975E\u8868\u793A
EnterMappingDialog.HideUsedTargets=\u30bf\u30fc\u30b2\u30c3\u30c8\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u96a0\u3057\u307e\u3059\u304b?
EnterMappingDialog.ResultMappings.Label=\u30DE\u30C3\u30D4\u30F3\u30B0\:
EnterMappingDialog.SourceFields.Label=\u30bd\u30fc\u30b9\u30d5\u30a3\u30fc\u30eb\u30c9\:
EnterMappingDialog.TargetFields.Label=\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9\:
EnterMappingDialog.Title=\u30DE\u30C3\u30D4\u30F3\u30B0\u5165\u529B
EnterOptionsDialog.AskOnExit.Label=\u7D42\u4E86\u6642\u306B\u78BA\u8A8D\u3059\u308B\:
EnterOptionsDialog.AutoSave.Label=\u5909\u66F4\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u81EA\u52D5\u4FDD\u5B58\u3059\u308B\:
EnterOptionsDialog.AutoSplitHops.Label=\u7D50\u5408\u3092\u81EA\u52D5\u7684\u306B\u5206\u5C90\u3059\u308B\:
EnterOptionsDialog.AutoSplitHops.Tooltip=\u30b9\u30c6\u30c3\u30d7\u3092\u30db\u30c3\u30d7\u4e0a\u306b\u914d\u7f6e\u3059\u308b\u3068\u30db\u30c3\u30d7\u306f\u5206\u5272\u3055\u308c\u3001\n\u65b0\u305f\u306a\u30b9\u30c6\u30c3\u30d7\u306f\u5143\u306e\uff12\u3064\u306e\u30b9\u30c6\u30c3\u30d7\u306e\u9593\u306b\u914d\u7f6e\u3055\u308c\u307e\u3059\u3002\n\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u306b\u3059\u308b\u3068\u3053\u306e\u51e6\u7406\u306f\u81ea\u52d5\u7684\u306b\u884c\u308f\u308c\u307e\u3059\u3002\u7121\u52b9\u306e\u5834\u5408\u306f\u78ba\u8a8d\u30dc\u30c3\u30af\u30b9\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
EnterOptionsDialog.BackgroundColor.Label=\u80CC\u666F\u8272\:
EnterOptionsDialog.BackgroundColorGraph.Label=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u80CC\u666F\u8272\:
EnterOptionsDialog.Branding.Label=\u30D6\u30E9\u30F3\u30C9\u30ED\u30B4\u306A\u3069\u306E\u753B\u50CF\u3092\u8868\u793A\u3059\u308B\:
EnterOptionsDialog.Button.Edit=\u7DE8\u96C6
EnterOptionsDialog.Button.Edit.Tooltip=\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u7DE8\u96C6
EnterOptionsDialog.Button.Reset=\u30EA\u30BB\u30C3\u30C8
EnterOptionsDialog.Button.Reset.Tooltip=\u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u306B\u30EA\u30BB\u30C3\u30C8
EnterOptionsDialog.CanvasAntiAliasing.Label=\u30AD\u30E3\u30F3\u30D0\u30B9\u306E\u30A2\u30F3\u30C1\u30A8\u30A4\u30EA\u30A2\u30B9\:
EnterOptionsDialog.ClearCustomParameters.Confirmation=\u30AB\u30B9\u30BF\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306F\u524A\u9664\u3055\u308C\u307E\u3057\u305F\u3002
EnterOptionsDialog.ClearCustomParameters.Label=\u30AB\u30B9\u30BF\u30E0\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u30AF\u30EA\u30A2\u30FC\u3059\u308B(\u30B9\u30C6\u30C3\u30D7/\u30D7\u30E9\u30B0\u30A4\u30F3)\:
EnterOptionsDialog.ClearCustomParameters.Question=\u30B9\u30C6\u30C3\u30D7/\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u30C0\u30A4\u30A2\u30ED\u30B0\u306E\u30AB\u30B9\u30BF\u30E0\u30D5\u30E9\u30B0\u3068\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F
EnterOptionsDialog.ClearCustomParameters.Title=\u78BA\u8A8D
EnterOptionsDialog.ClearCustomParameters.Tooltip=\u30B9\u30C6\u30C3\u30D7\u3068\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u30C0\u30A4\u30A2\u30ED\u30B0\u306B\u304A\u3044\u3066\u3001\u3059\u3079\u3066\u306E\u30AB\u30B9\u30BF\u30E0\u30D5\u30E9\u30B0\u3068\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u524A\u9664\u3057\u307E\u3059\u3002
EnterOptionsDialog.CopyOrDistributeDialog.Label="\u30B3\u30D4\u30FC\u307E\u305F\u306F\u5206\u5C90"\u306E\u30C0\u30A4\u30A2\u30ED\u30B0\u3092\u8868\u793A\u3059\u308B\:
EnterOptionsDialog.CopyOrDistributeDialog.Tooltip=\u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u6709\u52B9\u3067\u30B9\u30C6\u30C3\u30D7\u304C\u8907\u6570\u30B9\u30C6\u30C3\u30D7\u306B\u30C7\u30FC\u30BF\u3092\u914D\u5E03\u3057\u3088\u3046\u3068\u3057\u305F\u3068\u304D\u3001\u30C7\u30FC\u30BF\u3092\u5404\u30B9\u30C6\u30C3\u30D7\u306B\u5206\u914D\u3059\u308B\u304B\u3001\u540C\u3058\u30C7\u30FC\u30BF\u3092\u30B3\u30D4\u30FC\u3059\u308B\u304B\u30C0\u30A4\u30A2\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u307E\u3059\u3002\n\u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u6709\u52B9\u3067\u306A\u3044\u5834\u5408\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u30C7\u30FC\u30BF\u306F\u30B3\u30D4\u30FC\u3055\u308C\u307E\u3059\u3002
EnterOptionsDialog.DefaultLocale.Label=\u63A8\u5968\u8A00\u8A9E(1\u6B21\u8A00\u8A9E)\:
EnterOptionsDialog.DefaultPreviewSize.Label=\u30D7\u30EC\u30D3\u30E5\u30FC\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30EC\u30B3\u30FC\u30C9\u6570\:
EnterOptionsDialog.DialogMiddlePercentage.Label=\u30C0\u30A4\u30A2\u30ED\u30B0\u306E\u4E2D\u5FC3(%)\:
EnterOptionsDialog.EnableAutoCollapseCoreObjectTree.Label=\u30D1\u30EC\u30C3\u30C8\u30C4\u30EA\u30FC\u3092\u81EA\u52D5\u5C55\u958B\u3059\u308B\:
EnterOptionsDialog.FailoverLocale.Label=\u4EE3\u66FF\u8A00\u8A9E(2\u6B21\u8A00\u8A9E)\:
EnterOptionsDialog.FixedWidthFont.Label=\u56FA\u5B9A\u30D5\u30A9\u30F3\u30C8\:
EnterOptionsDialog.General.Label=\u4E00\u822C
EnterOptionsDialog.GraphFont.Label=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u30D5\u30A9\u30F3\u30C8\:
EnterOptionsDialog.GridSize.Label=\u30B0\u30EA\u30C3\u30C9\u30B5\u30A4\u30BA\:
EnterOptionsDialog.GridSize.ToolTip=\u30A2\u30A4\u30B3\u30F3\u304C\u30B0\u30EA\u30C3\u30C9\u306B\u30B9\u30CA\u30C3\u30D7\u3057\u3001\u7C21\u5358\u306B\u30B9\u30C6\u30C3\u30D7\u3092\u6574\u5217\u3059\u308B\u3053\u3068\u304C\u53EF\u80FD\u306B\u306A\u308A\u307E\u3059\u3002
EnterOptionsDialog.HelpToolTipsEnabled.Label=\u30D8\u30EB\u30D7\u30C4\u30FC\u30EB\u30C1\u30C3\u30D7\u3092\u8868\u793A\u3059\u308B\:
EnterOptionsDialog.IconSize.Label=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u30A2\u30A4\u30B3\u30F3\u30B5\u30A4\u30BA\:
EnterOptionsDialog.LineWidth.Label=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u7DDA\u5E45\:
EnterOptionsDialog.LookAndFeel.Label=\u5916\u89B3
EnterOptionsDialog.MaxLogLineTimeout.Label=\u91CD\u8981\u306A\u30ED\u30B0\u30EC\u30B3\u30FC\u30C9\u306E\u4FDD\u5B58\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8(\u5206)\:
EnterOptionsDialog.MaxNrHistLinesSize.Label=\u30ED\u30B0\u5C65\u6B74\u30D3\u30E5\u30FC\u306E\u6700\u5927\u30EC\u30B3\u30FC\u30C9\u6570\:
EnterOptionsDialog.MaxNrLogLinesSize.Label=\u30ED\u30B0\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u6700\u5927\u30EC\u30B3\u30FC\u30C9\u6570\:
EnterOptionsDialog.MaximumUndo.Label=\u6700\u5927Undo\u30EC\u30D9\u30EB\:
EnterOptionsDialog.NoteFont.Label=\u30E1\u30E2\u306E\u30D5\u30A9\u30F3\u30C8\:
EnterOptionsDialog.OnlyActiveFile.Label=\u30E1\u30A4\u30F3\u30C4\u30EA\u30FC\u306B\u4F7F\u7528\u4E2D\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u307F\u8868\u793A\u3059\u308B\:
EnterOptionsDialog.OnlySaveUsedConnections.Label=XML\u3078\u4F7F\u7528\u6E08\u307F\u63A5\u7D9A\u3060\u3051\u3092\u4FDD\u5B58\u3059\u308B\:
EnterOptionsDialog.OpenLastFileStartup.Label=\u8D77\u52D5\u6642\u306B\u6700\u5F8C\u306B\u958B\u3044\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\:
EnterOptionsDialog.ReplaceDB.Label=\u958B\u304F\u307E\u305F\u306F\u30A4\u30F3\u30DD\u30FC\u30C8\u6642\u3001\u65E2\u5B58\u306E\u63A5\u7D9A\u306B\u7F6E\u304D\u63DB\u3048\u308B\:
EnterOptionsDialog.ReplaceDB.Tooltip=\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u306b\u3059\u308b\u3068\u65e2\u5b58\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u306f\u30c8\u30e9\u30f3\u30b9\u30d5\u30a9\u30fc\u30e1\u30fc\u30b7\u30e7\u30f3\u3092\u958b\u3044\u305f\u6642\u3084\u3001\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u305f\u6642\u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3059\u3002\n\u78ba\u8a8d\u30dc\u30c3\u30af\u30b9\u306e\u8868\u793a/\u975e\u8868\u793a\u306f\u4e0a\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
EnterOptionsDialog.ReplaceDBAsk.Label=\u958B\u304F\u307E\u305F\u306F\u30A4\u30F3\u30DD\u30FC\u30C8\u6642\u3001\u65E2\u5B58\u306E\u63A5\u7D9A\u306B\u7F6E\u304D\u63DB\u3048\u308B\u304B\u78BA\u8A8D\u3059\u308B\:
EnterOptionsDialog.ReplaceDBAsk.Tooltip=\u30C7\u30FC\u30BF\u5909\u63DB\u304C\u30AA\u30FC\u30D7\u30F3\u3055\u308C\u308B\u304B\u30A4\u30F3\u30DD\u30FC\u30C8\u3055\u308C\u3001\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u63A5\u7D9A\u304C\u73FE\u5728\u3068\u540C\u69D8\u306E\u540D\u79F0\u3067\u5B58\u5728\u3059\u308B\u306A\u3089\u3001\n\u30C0\u30A4\u30A2\u30ED\u30B0\u3067\u65E2\u5B58\u306E\u63A5\u7D9A\u306B\u7F6E\u304D\u63DB\u3048\u308B\u304B\u3069\u3046\u304B\u78BA\u8A8D\u3057\u307E\u3059\u3002
EnterOptionsDialog.ShadowSize.Label=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u5F71\u306E\u30B5\u30A4\u30BA\:
EnterOptionsDialog.ShowRepoDialog.Label=\u958B\u59CB\u6642\u306B\u30EA\u30DD\u30B8\u30C8\u30EA\u30C0\u30A4\u30A2\u30ED\u30B0\u3092\u8868\u793A\u3059\u308B\:
EnterOptionsDialog.ShowSaveConfirmation.Label="\u4FDD\u5B58" \u30C0\u30A4\u30A2\u30ED\u30B0\u3092\u8868\u793A\u3059\u308B\:
EnterOptionsDialog.ShowTipsStartup.Label=\u8D77\u52D5\u6642\u306BTips\u3092\u8868\u793A\u3059\u308B\:
EnterOptionsDialog.ShowWelcomePage.Label=\u8D77\u52D5\u6642\u306B\u3088\u3046\u3053\u305D\u30DA\u30FC\u30B8\u3092\u8868\u793A\u3059\u308B\:
EnterOptionsDialog.TabColor.Label=\u30BF\u30D6\u306E\u8272\:
EnterOptionsDialog.Title=Kettle \u30AA\u30D7\u30B7\u30E7\u30F3
EnterOptionsDialog.ToolTipsEnabled.Label=\u30C4\u30FC\u30EB\u30C1\u30C3\u30D7\u3092\u8868\u793A\u3059\u308B\:
EnterOptionsDialog.UseDatabaseCache.Label=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30AD\u30E3\u30C3\u30B7\u30E5\u3092\u4F7F\u7528\u3059\u308B\:
EnterOptionsDialog.UseOSLook.Label=OS\u306E\u5916\u89B3\u3092\u4F7F\u7528\u3059\u308B\:
EnterOptionsDialog.VersionCheck.Label=\u66F4\u65B0\u30C1\u30A7\u30C3\u30AF\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3059\u304B\uFF1F
EnterOptionsDialog.CanvasIndicateSlowSteps.Label=\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u306e\u30c8\u30e9\u30f3\u30b9\u30d5\u30a9\u30fc\u30e1\u30fc\u30b7\u30e7\u30f3\u30b9\u30c6\u30c3\u30d7\u3092\u8868\u793a
EnterOptionsDialog.CanvasIndicateSlowSteps.Tooltip=\u6709\u52b9\u306b\u8a2d\u5b9a\u3057\u305f\u5834\u5408\u3001\u884c\u306e\u5165\u529b\u304c\u51e6\u7406\u901f\u5ea6\u3088\u308a\u3082\u65e9\u3044\u30b9\u30c6\u30c3\u30d7(\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u30b9\u30c6\u30c3\u30d7)\u306b\u7dda\u304c\u63cf\u304b\u308c\u307e\u3059\u3002
EnterPrintDialog.BottomMargin.Label=\u4E0B\u4F59\u767D (\u30A4\u30F3\u30C1)\:
EnterPrintDialog.Cols.Label=\u30AB\u30E9\u30E0\:
EnterPrintDialog.LeftMargin.Label=\u5DE6\u4F59\u767D (\u30A4\u30F3\u30C1)\:
EnterPrintDialog.PrintArea.Label=\u5370\u5237\u9818\u57DF\:
EnterPrintDialog.RightMargin.Label=\u53F3\u4F59\u767D (\u30A4\u30F3\u30C1)\:
EnterPrintDialog.Rows.Label=\u884C\:
EnterPrintDialog.Scaling.Label=\u62E1\u5927\u7E2E\u5C0F(10-100%)\:
EnterPrintDialog.Title=\u5370\u5237
EnterPrintDialog.TopMargin.Label=\u4E0A\u4F59\u767D (\u30A4\u30F3\u30C1)\:
EnterSearchDialog.DB.Label=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u63A5\u7D9A\u691C\u7D22
EnterSearchDialog.DB.Tooltip=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u63A5\u7D9A\u691C\u7D22
EnterSearchDialog.FilterSelection.Label=\u30D5\u30A3\u30EB\u30BF\u30FC
EnterSearchDialog.Note.Label=\u30E1\u30E2\u691C\u7D22
EnterSearchDialog.Note.Tooltip=\u30E1\u30E2\u691C\u7D22
EnterSearchDialog.Shell.Title=\u30E1\u30BF\u30C7\u30FC\u30BF\u691C\u7D22
EnterSearchDialog.Step.Label=\u30B9\u30C6\u30C3\u30D7\u691C\u7D22
EnterSearchDialog.Step.Tooltip=\u30B9\u30C6\u30C3\u30D7\u691C\u7D22
EnterStringsDialog.Message=\u4EE5\u4E0B\u306B\u6307\u5B9A\u3055\u308C\u305F\u6587\u5B57\u5217\u306B\u5024\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\:
EnterStringsDialog.StringName.Label=\u540D\u79F0
EnterStringsDialog.StringValue.Label=\u5024
EnterStringsDialog.Title=Enter string values
EnterValueDialog.ConversionFormat.Label=\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u5909\u63DB\:
EnterValueDialog.Length.Label=\u9AD8\u3055\:
EnterValueDialog.Precision.Label=\u7CBE\u5EA6\:
EnterValueDialog.TestResult.Message=\u7D50\u679C\u5024\:\n\n{0}
EnterValueDialog.TestResult.Title=\u5024
EnterValueDialog.Title=\u5165\u529B\u5024
EnterValueDialog.Type.Label=\u30BF\u30A4\u30D7\:
EnterValueDialog.Value.Label=\u5024\:
ErrorDialog.ShowDetails.Message=\u30A8\u30E9\u30FC\u8A73\u7D30\u3068\u4F8B\u5916\u306E\u30B9\u30BF\u30C3\u30AF\u30C8\u30EC\u30FC\u30B9
ErrorDialog.ShowDetails.Title=\u30A8\u30E9\u30FC\u8A73\u7D30
GetDatabaseInfoProgressDialog.Error.GettingInfoTable=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089\u60C5\u5831\u53D6\u5F97\u4E2D\u306B\u554F\u984C\u304C\u3042\u308A\u307E\u3057\u305F\: {0}
GetDatabaseInfoProgressDialog.Error.Message=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089\u60C5\u5831\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
GetDatabaseInfoProgressDialog.Error.Title=\u60C5\u5831\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC
GetPreviewTableProgressDialog.Error.Message=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089\u60C5\u5831\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
GetPreviewTableProgressDialog.Error.Title=\u60C5\u5831\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC
GetQueryFieldsProgressDialog.Error.Message=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089\u60C5\u5831\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
GetQueryFieldsProgressDialog.Error.Title=\u60C5\u5831\u53D6\u5F97\u30A8\u30E9\u30FC
GetTableSizeProgressDialog.Error.Message=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089\u60C5\u5831\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
GetTableSizeProgressDialog.Error.Title=\u60C5\u5831\u53D6\u5F97\u4E2D\u306B\u30A8\u30E9\u30FC
SQLEditor.Button.ClearCache=\u30AD\u30E3\u30C3\u30B7\u30E5\u30AF\u30EA\u30A2\u30FC(&C)
SQLEditor.Button.ClearCache.Tooltip=\u4E0A\u8A18\u7D50\u679C\u3068\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u5185\u5BB9\u3068\u7570\u306A\u308B\u5834\u5408\u3001\u3053\u306E\u30DC\u30BF\u30F3\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002\nKettle\u4EE5\u5916\u306E\u30C4\u30FC\u30EB\u3067\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u30C6\u30FC\u30D6\u30EB\u3092\u4F5C\u6210\u30FB\u5909\u66F4\u3059\u308B\u5834\u5408\u3001\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30AD\u30E3\u30C3\u30B7\u30E5\u306F\u6B63\u3057\u304F\u306A\u304F\u306A\u308A\u307E\u3059\u3002
SQLEditor.Button.Execute=\u5B9F\u884C(&E)
SQLEditor.ClearWholeCache.Message=\u5B8C\u5168\u306B\u30AD\u30E3\u30C3\u30B7\u30E5\u3092\u30AF\u30EA\u30A2\u30FC\u3057\u307E\u3059\u304B\uFF1F\n''No'' \u3092\u9078\u629E\u3059\u308B\u306A\u3089\u3001\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u63A5\u7D9A ''{0}'' \u306E\u30AD\u30E3\u30C3\u30B7\u30E5\u306E\u307F\u30AF\u30EA\u30A2\u30FC\u3055\u308C\u307E\u3059\u3002
SQLEditor.ClearWholeCache.Title=\u3059\u3079\u3066\u306E\u30AD\u30E3\u30C3\u30B7\u30E5\u3092\u30AF\u30EA\u30A2\u30FC\u3059\u308B
SQLEditor.ConnectionCacheCleared.Message=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u63A5\u7D9A ''{0}'' \u306E\u30AD\u30E3\u30C3\u30B7\u30E5\u306F\u30AF\u30EA\u30A2\u30FC\u3055\u308C\u307E\u3057\u305F\u3002
SQLEditor.ConnectionCacheCleared.Title=\u30AD\u30E3\u30C3\u30B7\u30E5\u30AF\u30EA\u30A2
SQLEditor.Editor.Label=SQL\u6587\u3001\u30BB\u30DF\u30B3\u30ED\u30F3 '';'' \u3067\u533A\u5207\u3089\u308C\u307E\u3059
SQLEditor.Error.CouldNotConnect.Message=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3002\n\u63A5\u7D9A [{0}] \u306E\u63A5\u7D9A\u8A2D\u5B9A\u3092\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n{1}
SQLEditor.Error.CouldNotConnect.Title=\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093
SQLEditor.ErrorExecSQL.Message=\u4EE5\u4E0B\u306ESQL\u3092\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\:\n\n{0}
SQLEditor.ErrorExecSQL.Title=SQL\u5B9F\u884C\u30A8\u30E9\u30FC
SQLEditor.LineNr.Label=\u884C\u756A\u53F7\: {0}
SQLEditor.Log.OnPartition=on partition ''{0}''
SQLEditor.Log.SQLExecError=\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\: {0}\n{1}
SQLEditor.Log.SQLExecuted=\u5B9F\u884CSQL\: {0}\n
SQLEditor.Log.StatsExecuted={0} SQL\u6587\u306F\u5B9F\u884C\u3055\u308C\u307E\u3057\u305F\u3002
SQLEditor.NoRows.Message=SQL\u6587\u306E\u7D50\u679C\u306F\u3042\u308A\u307E\u305B\u3093\:\n\n{0}
SQLEditor.NoRows.Title=\u7D50\u679C\u306A\u3057
SQLEditor.Position.Label=\u30EC\u30B3\u30FC\u30C9 {0} \u30AB\u30E9\u30E0 {1}
SQLEditor.Result.Message=SQL\u6587\u306F\u4EE5\u4E0B\u306E\u7D50\u679C\u304C\u3042\u308A\u307E\u3057\u305F\u3002
SQLEditor.Result.Title=SQL\u6587\u306E\u7D50\u679C
SQLEditor.ResultRows.Title=SQL\u6587 \#{0}
SQLEditor.Title=\u30B7\u30F3\u30D7\u30EB SQL \u30A8\u30C7\u30A3\u30BF\u30FC
SQLEditor.WholeCacheCleared.Message=\u3059\u3079\u3066\u306E\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30AD\u30E3\u30C3\u30B7\u30E5\u306F\u6D88\u53BB\u3055\u308C\u307E\u3057\u305F\u3002
SQLEditor.WholeCacheCleared.Title=\u30AD\u30E3\u30C3\u30B7\u30E5\u30AF\u30EA\u30A2
SQLStatementDialog.Button.EditStep=\u95A2\u9023\u30B9\u30C6\u30C3\u30D7\u306E\u7DE8\u96C6(&E)
SQLStatementDialog.Button.ExecSQL=SQL\u5B9F\u884C(&x)
SQLStatementDialog.Button.ViewSQL=SQL\u8868\u793A(&V)
SQLStatementDialog.Error.CouldNotConnect=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u63A5\u7D9A [{0}] \u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002
SQLStatementDialog.Error.CouldNotExec=\u4EE5\u4E0B\u306ESQL\u6587\u306F\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\:\n{0}
SQLStatementDialog.Error.Message={0}\u306e\u30a8\u30e9\u30fc\u304c\u5b58\u5728\u3059\u308b\u70ba\u3001\u6307\u5b9a\u3055\u308c\u305f\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u3092\u5b9f\u884c\u3059\u308b\u4e8b\u304c\u3067\u304d\u307e\u305b\u3093\u3002
SQLStatementDialog.Error.Title=\u30A8\u30E9\u30FC
SQLStatementDialog.Log.Connection=-- \u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u63A5\u7D9A \: {0}\n
SQLStatementDialog.Log.Error=-- \u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8 \: {0}\n
SQLStatementDialog.Log.Step=-- \u30B9\u30C6\u30C3\u30D7 \: {0}\n
SQLStatementDialog.Log.Undefined=<\u672A\u5B9A\u7FA9>
SQLStatementDialog.Success.Message={0} SQL\u6587\u306E\u5B9F\u884C\u306B\u6210\u529F\u3057\u307E\u3057\u305F
SQLStatementDialog.Success.Title=\u6210\u529F
SQLStatementDialog.TableCol.Connection=\u63A5\u7D9A
SQLStatementDialog.TableCol.Error=\u30A8\u30E9\u30FC
SQLStatementDialog.TableCol.SQL=SQL
SQLStatementDialog.TableCol.Stepname=\u30B9\u30C6\u30C3\u30D7\u540D
SQLStatementDialog.Title=\u5b9f\u884c\u3059\u308bSQL\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u306e\u30ea\u30b9\u30c8
SQLStatementDialog.ViewSQL.Message=SQL \u30B9\u30C6\u30FC\u30C8\u30E1\u30F3\u30C8\:
SQLStatementDialog.ViewSQL.Title=SQL \u30B9\u30C6\u30FC\u30C8\u30E1\u30F3\u30C8
SelectRowDialog.Title=\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\uff11\u3064\u9078\u629e
ShowImageDialog.Title=\u30A4\u30E1\u30FC\u30B8\u8868\u793A
StepFieldsDialog.Buttons.EditOrigin=\u95A2\u9023\u30B9\u30C6\u30C3\u30D7\u7DE8\u96C6(&E)
StepFieldsDialog.Fields.Label=\u30D5\u30A3\u30FC\u30EB\u30C9\:
StepFieldsDialog.Name.Label=\u30B9\u30C6\u30C3\u30D7\u540D\:
StepFieldsDialog.TableCol.Fieldname=\u30D5\u30A3\u30FC\u30EB\u30C9\u540D
StepFieldsDialog.TableCol.Length=\u9577\u3055
StepFieldsDialog.TableCol.Origin=\u95A2\u9023\u30B9\u30C6\u30C3\u30D7
StepFieldsDialog.TableCol.Precision=\u7CBE\u5EA6
StepFieldsDialog.TableCol.Type=\u30BF\u30A4\u30D7
StepFieldsDialog.Title=\u30B9\u30C6\u30C3\u30D7\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u95A2\u4FC2
XulDatabaseDialog.Error.Dialog=\u30C0\u30A4\u30A2\u30ED\u30B0\u3067\u30A8\u30E9\u30FC
XulDatabaseDialog.Error.General=\u4E00\u822C\u7684\u306A\u30A8\u30E9\u30FC
XulDatabaseDialog.Error.HandleXul=XUL\u5B9A\u7FA9\u52D5\u4F5C\u30A8\u30E9\u30FC
XulDatabaseDialog.Error.LoadXul=XUL\u5B9A\u7FA9\u8AAD\u307F\u8FBC\u307F\u30A8\u30E9\u30FC
XulDatabaseDialog.Error.ResourcesNotFound=\u30d7\u30e9\u30a4\u30de\u30ea\u30ed\u30b1\u30fc\u30eb{0}\u3068\u30d5\u30a7\u30a4\u30eb\u30aa\u30fc\u30d0\u30fc\u30ed\u30b1\u30fc\u30eb{1}\u306e\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002
XulDatabaseDialog.Error.ResourcesNotFound.Title=\u30c0\u30a4\u30a2\u30ed\u30b0\u306eString\u30ea\u30bd\u30fc\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002
XulDatabaseDialog.Error.SAXReader=SAX\u30EA\u30FC\u30C0\u30FC\u306B\u3088\u308BXUL\u5B9A\u7FA9\u8AAD\u307F\u8FBC\u307F\u30A8\u30E9\u30FC
XulDatabaseDialog.Error.Title=\u30a8\u30e9\u30fc
tooltip_expand_collapse=\u30C4\u30EA\u30FC\u5C55\u958B/\u3057\u307E\u3046
tooltip_refresh=\u30C4\u30EA\u30FC\u518D\u8868\u793A
DatabaseExplorerDialog.TableLayout.ShellText=\u30c6\u30fc\u30d6\u30eb\u30ec\u30a4\u30a2\u30a6\u30c8
DatabaseExplorerDialog.TableLayout.OriginText=\u30c6\u30fc\u30d6\u30eb

View File

@ -0,0 +1,315 @@
#File generated by Hitachi Vantara Translator for package 'org.pentaho.di.ui.core.database.dialog' in locale 'ko_KR'
#
#
#Mon Dec 21 10:44:40 KST 2009
CheckResultDialog.Button.EditOriginStep=\uC6D0\uBCF8 Step \uD3B8\uC9D1
CheckResultDialog.Button.ViewMessage=\uBA54\uC138\uC9C0 \uBCF4\uAE30
CheckResultDialog.HideSuccessful.Label=\uC131\uACF5\uD55C \uACB0\uACFC \uC228\uAE30\uAE30(&s)
CheckResultDialog.Remark.Label=\uC124\uBA85
CheckResultDialog.Remarks.Label=\uC124\uBA85:
CheckResultDialog.Result.Label=\uACB0\uACFC
CheckResultDialog.ShowSuccessful.Label=\uC131\uACF5\uD55C \uACB0\uACFC \uBCF4\uAE30(&s)
CheckResultDialog.Stepname.Label=Step \uC774\uB984
CheckResultDialog.TextDialog.Subtitle=\uBA54\uC138\uC9C0:
CheckResultDialog.TextDialog.SubtitlePlural=\uBA54\uC138\uC9C0:
CheckResultDialog.TextDialog.Title=\uBA54\uC138\uC9C0 \uBCF4\uAE30
CheckResultDialog.Title=Transformation \uAC80\uC0AC \uACB0\uACFC
CheckResultDialog.WarningsErrors.Label=\uACBD\uACE0\uC640 \uC624\uB958:
DatabaseDialog.AdvancedTab.title=\uACE0\uAE09
DatabaseDialog.ClusterTab.title=\uD074\uB7EC\uC2A4\uD130
DatabaseDialog.ClusterTab.tooltip=\uCD94\uAC00 \uD074\uB7EC\uC2A4\uD130\uB9C1 \uC815\uBCF4
DatabaseDialog.ConnectionReport.description=\uC5F0\uACB0 \uB9AC\uD3EC\uD2B8\uC785\uB2C8\uB2E4
DatabaseDialog.ConnectionReport.title=\uC5F0\uACB0 \uB9AC\uD3EC\uD2B8
DatabaseDialog.DatabaseConnectionTest.title=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0 \uD14C\uC2A4\uD2B8
DatabaseDialog.DbTab.title=\uC77C\uBC18
DatabaseDialog.ErrorConnectionInfo.description=\uC5F0\uACB0 \uC815\uBCF4\uB97C \uAC00\uC838\uC62C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
DatabaseDialog.ErrorConnectionInfo.title=\uC624\uB958
DatabaseDialog.ErrorHelpText.description=\uB3C4\uC6C0\uB9D0\uC744 \uAC00\uC838\uC62C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uBAA8\uB4E0 \uD544\uC694\uD55C \uD30C\uB77C\uBBF8\uD130\uAC00 \uC815\uD655\uD788 \uC785\uB825\uB418\uC5C8\uB294\uC9C0 \uD655\uC778\uD558\uC2ED\uC2DC\uC624!
DatabaseDialog.ErrorHelpText.title=\uC624\uB958!
DatabaseDialog.ErrorParameters.description=\uBAA8\uB4E0 \uD544\uC694\uD55C \uD30C\uB77C\uBBF8\uD130\uAC00 \uC815\uD655\uD788 \uC785\uB825\uB418\uC5C8\uB294\uC9C0 \uD655\uC778\uD558\uC2ED\uC2DC\uC624!
DatabaseDialog.ErrorParameters.title=\uC624\uB958!
DatabaseDialog.ErrorParameters2.description=\uBAA8\uB4E0 \uD544\uC694\uD55C \uD30C\uB77C\uBBF8\uD130\uAC00 \uC815\uD655\uD788 \uC785\uB825\uB418\uC5C8\uB294\uC9C0 \uD655\uC778\uD558\uC2ED\uC2DC\uC624!: {0}
DatabaseDialog.ErrorParameters2.title=\uC624\uB958!
DatabaseDialog.Exception.IncorrectParameter=\uC815\uD655\uD788\uC9C0 \uC54A\uC740 \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uD30C\uB77C\uBBF8\uD130! \uC124\uC815\uC744 \uD655\uC778\uD558\uC2ED\uC2DC\uC624 :
DatabaseDialog.ExplorerNotImplemented.Message=\uC8C4\uC1A1\uD569\uB2C8\uB2E4, \uC774 \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0 \uB300\uD55C \uD0D0\uC0C9\uC740 \uAD6C\uD604\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
DatabaseDialog.ExplorerNotImplemented.Title=\uC8C4\uC1A1\uD569\uB2C8\uB2E4.
DatabaseDialog.FeatureList.title=\uAE30\uB2A5 \uB9AC\uC2A4\uD2B8
DatabaseDialog.FeatureList.title2="\uAE30\uB2A5 \uB9AC\uC2A4\uD2B8:"
DatabaseDialog.FeatureListError.description=\uAE30\uB2A5 \uB9AC\uC2A4\uD2B8\uB97C \uAC00\uC838\uC62C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uBAA8\uB4E0 \uD544\uC694\uD55C \uD30C\uB77C\uBBF8\uD130\uAC00 \uC815\uD655\uD788 \uC785\uB825\uB418\uC5C8\uB294\uC9C0 \uD655\uC778\uD558\uC2ED\uC2DC\uC624!
DatabaseDialog.FeatureListError.title=\uC624\uB958!
DatabaseDialog.GenericTab.title=\uC77C\uBC18
DatabaseDialog.GenericTab.tooltip=JDBC \uB4DC\uB77C\uC774\uBC84\uB97C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 \uC77C\uBC18\uC801\uC778 \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uB97C \uC0AC\uC6A9\uD558\uACE0\uC790 \uD558\uB294 \uACBD\uC6B0 \uC124\uC815
DatabaseDialog.HelpText.description=[{0}] \uC744 \uC704\uD55C \uB3C4\uC6C0\uB9D0 :
DatabaseDialog.HelpText.title=\uC635\uC158 \uB3C4\uC6C0\uB9D0
DatabaseDialog.IfxTab.title=Informix
DatabaseDialog.JDBCOptions.Tab={0}: JDBC \uC635\uC158 \uB3C4\uC6C0\uB9D0
DatabaseDialog.MSSQLTab.title=SQL Server
DatabaseDialog.MySQLTab.title=MySQL
DatabaseDialog.OracleTab.title=Oracle
DatabaseDialog.PoolTab.title=Pooling
DatabaseDialog.SQLTab.title=SQL
DatabaseDialog.SQLTab.tooltip=\uC5F0\uACB0 \uD6C4 \uC2E4\uD589\uD560 SQL\uC744 \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624.
DatabaseDialog.Shell.title=\uC5F0\uACB0 \uC815\uBCF4
DatabaseDialog.button.Explore=\uD0D0\uC0C9
DatabaseDialog.button.FeatureList=\uAE30\uB2A5 \uB9AC\uC2A4\uD2B8
DatabaseDialog.button.ShowHelp=\uC635\uC158 \uC0AC\uC6A9\uC5D0 \uB300\uD55C \uB3C4\uC6C0\uB9D0 \uBCF4\uC774\uAE30
DatabaseDialog.button.Test=\uD14C\uC2A4\uD2B8
DatabaseDialog.column.DatabaseName=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC774\uB984
DatabaseDialog.column.DbType=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uD615\uC2DD
DatabaseDialog.column.Hostname=\uD638\uC2A4\uD2B8
DatabaseDialog.column.Parameter=\uD30C\uB77C\uBBF8\uD130
DatabaseDialog.column.PartitionId=\uD30C\uD2F0\uC158 ID
DatabaseDialog.column.Password=\uC554\uD638
DatabaseDialog.column.PoolDefault=\uAE30\uBCF8\uAC12
DatabaseDialog.column.PoolDescription=\uD30C\uB77C\uBBF8\uD130 \uC124\uBA85
DatabaseDialog.column.PoolParameter=Pool \uD30C\uB77C\uBBF8\uD130
DatabaseDialog.column.PoolValue=\uAC12
DatabaseDialog.column.Port=\uD3EC\uD2B8
DatabaseDialog.column.Username=\uC0AC\uC6A9\uC790\uC774\uB984
DatabaseDialog.column.Value=\uAC12
DatabaseDialog.label.AccessMethod=\uC811\uADFC \uBC29\uBC95
DatabaseDialog.label.AdvancedForceIdentifiersLowerCase=\uBAA8\uB4E0 \uC2DD\uBCC4\uC790\uB97C \uC18C\uBB38\uC790\uB85C \uBCC0\uD658
DatabaseDialog.label.AdvancedForceIdentifiersUpperCase=\uBAA8\uB4E0 \uC2DD\uBCC4\uC790\uB97C \uB300\uBB38\uC790\uB85C \uBCC0\uD658
DatabaseDialog.label.AdvancedQuoteAllFields=\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC758 \uBAA8\uB4E0 \uC2DD\uBCC4\uC790\uC5D0 \uC778\uC6A9\uBD80\uD638
DatabaseDialog.label.ConnectionName=\uC5F0\uACB0 \uC774\uB984
DatabaseDialog.label.ConnectionType=\uC5F0\uACB0 \uD615\uC2DD
DatabaseDialog.label.DatabaseName=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC774\uB984
DatabaseDialog.label.DriverClass=\uB4DC\uB77C\uC774\uBC84 \uD074\uB798\uC2A4
DatabaseDialog.label.InformixServername=Informix \uC11C\uBC84\uC774\uB984
DatabaseDialog.label.InitialPoolSize=\uCD08\uAE30 Pool \uD06C\uAE30
DatabaseDialog.label.Language=\uC5B8\uC5B4
DatabaseDialog.label.MaximumPoolSize=\uCD5C\uB300 Pool \uD06C\uAE30
DatabaseDialog.label.MySQLStreamResults=\uACB0\uACFC \uC2A4\uD2B8\uB9AC\uBC0D \uC0AC\uC6A9 (\uCEE4\uC11C \uC5D0\uBBAC\uB808\uC774\uC158)
DatabaseDialog.label.Options=\uC635\uC158
DatabaseDialog.label.Password=\uC554\uD638
DatabaseDialog.label.PoolParameters=\uC5F0\uACB0 Pool \uD30C\uB77C\uBBF8\uD130
DatabaseDialog.label.PortNumber=\uD3EC\uD2B8 \uBC88\uD638
DatabaseDialog.label.PreferredSchemaName=\uC120\uD638\uD558\uB294 \uC2A4\uD0A4\uB9C8 \uC774\uB984. \uB2E4\uB978 \uC2A4\uD0A4\uB9C8\uB97C \uC9C0\uC815\uD558\uC9C0 \uC54A\uC73C\uBA74 \uC0AC\uC6A9\uB429\uB2C8\uB2E4.
DatabaseDialog.label.SQLServerInstance=SQL Server \uC778\uC2A4\uD134\uC2A4 \uC774\uB984
DatabaseDialog.label.Sap=SAP ERP
DatabaseDialog.label.SapClient=SAP \uD074\uB77C\uC774\uC5B8\uD2B8
DatabaseDialog.label.ServerHostname=\uC11C\uBC84 \uD638\uC2A4\uD2B8 \uC774\uB984
DatabaseDialog.label.Statements=\uC5F0\uACB0 \uD6C4\uC5D0 \uBC14\uB85C \uC2E4\uD589\uD560 \uBB38\uC7A5 (; \uB85C \uAD6C\uBD84)
DatabaseDialog.label.SystemNumber=\uC2DC\uC2A4\uD15C \uBC88\uD638
DatabaseDialog.label.TablespaceForData=\uB370\uC774\uD130\uC758 \uD14C\uC774\uBE14\uC2A4\uD398\uC774\uC2A4
DatabaseDialog.label.TablespaceForIndexes=\uC778\uB371\uC2A4\uC758 \uD14C\uC774\uBE14\uC2A4\uD398\uC774\uC2A4
DatabaseDialog.label.Url=URL
DatabaseDialog.label.UseClustering=\uD074\uB7EC\uC2A4\uD130\uB9C1 \uC0AC\uC6A9?
DatabaseDialog.label.UseConnectionPool=\uC5F0\uACB0 Pool \uC0AC\uC6A9?
DatabaseDialog.label.UseDoubleDecimalSeparator=\uC2A4\uD0A4\uB9C8\uC640 \uD14C\uC774\uBE14\uC744 \uAD6C\uBD84\uD558\uAE30 \uC704\uD574 .. \uC0AC\uC6A9
DatabaseDialog.label.Username=\uC0AC\uC6A9\uC790 \uC774\uB984
DatabaseDialog.tooltip.DbType=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0 URL\uC5D0 \uC124\uC815\uD560 \uCD94\uAC00\uC801\uC778 \uD30C\uB77C\uBBF8\uD130
DatabaseDialog.tooltip.Hostname=\uD30C\uB77C\uBBF8\uD130\uB85C \uC124\uC815\uD560 \uAC12
DatabaseDialog.tooltip.Options=URL\uC5D0 \uC124\uC815\uD560 \uCD94\uAC00 \uC635\uC158
DatabaseDialog.tooltip.Parameter=\uD30C\uB77C\uBBF8\uD130\uC5D0 \uC124\uC815\uD560 \uAC12
DatabaseDialog.tooltip.PartitionId=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0 URL\uC5D0 \uC124\uC815\uD560 \uCD94\uAC00 \uD30C\uB77C\uBBF8\uD130
DatabaseDialog.tooltip.UseClustering=\uD074\uB7EC\uC2A4\uD130\uB9C1 \uC815\uBCF4\uB97C \uCD94\uAC00\uD558\uAE30\uC704\uD574 \uD074\uB7EC\uC2A4\uD130\uB9C1 \uD65C\uC131\uD654
DatabaseExplorer.Actions=\uB3D9\uC791
DatabaseExplorer.Button.Cancel=\uCDE8\uC18C(&C)
DatabaseExplorer.Button.Ok=\uD655\uC778(&O)
DatabaseExplorer.DataProfile=\uB370\uC774\uD130 \uD504\uB85C\uD30C\uC77C
DatabaseExplorer.Preview100=\uCC98\uC74C 100 \uBBF8\uB9AC\uBCF4\uAE30
DatabaseExplorer.PreviewX=x \uB85C\uC6B0 \uBBF8\uB9AC\uBCF4\uAE30
DatabaseExplorer.RowCount=\uB85C\uC6B0 \uCE74\uC6B4\uD2B8
DatabaseExplorer.SelectConnection=\uC5F0\uACB0 \uC120\uD0DD
DatabaseExplorer.ShowLayout=\uB808\uC774\uC544\uC6C3 \uBCF4\uAE30
DatabaseExplorer.Title=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uD0D0\uC0C9\uAE30
DatabaseExplorer.Truncate=Truncate \uD14C\uC774\uBE14
DatabaseExplorer.UseCurrent=\uD604\uC7AC \uC5F0\uACB0 \uC0AC\uC6A9
DatabaseExplorer.ViewSQL=SQL \uBCF4\uAE30
DatabaseExplorerDialog.Catalogs.Label=\uCE74\uD0C8\uB85C\uADF8
DatabaseExplorerDialog.Error.GenDDL=DDL\uC744 \uC0DD\uC131\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
DatabaseExplorerDialog.Error.RetrieveLayout=\uD14C\uC774\uBE14 \uB808\uC774\uC544\uC6C3\uC744 \uAC00\uC838\uC62C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
DatabaseExplorerDialog.Menu.DisplayColumns=\uCEEC\uB7FC \uD45C\uC2DC
DatabaseExplorerDialog.Menu.GenDDL=DDL \uC0DD\uC131
DatabaseExplorerDialog.Menu.GenDDLOtherConn=\uB2E4\uB978 \uC5F0\uACB0\uC758 DDL \uC0DD\uC131
DatabaseExplorerDialog.Menu.OpenSQL=[{0}] \uC758 SQL \uC5F4\uAE30
DatabaseExplorerDialog.Menu.Preview100=[{0}]\uC758 \uCC98\uC74C 100 \uB85C\uC6B0 \uBBF8\uB9AC\uBCF4\uAE30
DatabaseExplorerDialog.Menu.PreviewN=[{0}] \uC758 \uCC98\uC74C ... \uB85C\uC6B0 \uBBF8\uB9AC\uBCF4\uAE30(&P)
DatabaseExplorerDialog.Menu.ProfileTable=\uB370\uC774\uD130 \uD504\uB85C\uD30C\uC77C ''{0}''
DatabaseExplorerDialog.Menu.ShowLayout=[{0}]\uC758 \uB808\uC774\uC544\uC6C3 \uBCF4\uAE30
DatabaseExplorerDialog.Menu.ShowSize=[{0}] \uC758 \uB85C\uC6B0 \uC218
DatabaseExplorerDialog.Menu.Truncate=[{0}] \uD14C\uC774\uBE14 Truncate
DatabaseExplorerDialog.NoConnectionsKnown.Message=\uD604\uC7AC DDL\uC744 \uC0DD\uC131\uD558\uAE30 \uC704\uD574 \uC0AC\uC6A9\uAC00\uB2A5\uD55C \uB2E4\uB978 \uC5F0\uACB0\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.
DatabaseExplorerDialog.NoConnectionsKnown.Title=\uC5F0\uACB0\uC774 \uC5C6\uC2B5\uB2C8\uB2E4
DatabaseExplorerDialog.NoRows.Message=\uD14C\uC774\uBE14\uC5D0 \uB85C\uC6B0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4
DatabaseExplorerDialog.NoRows.Title=\uB85C\uC6B0 \uC5C6\uC74C
DatabaseExplorerDialog.PreviewTable.Message=\uBBF8\uB9AC\uBCF4\uAE30 \uAC1C\uC218 (0\uC6B4 \uBAA8\uB4E0 \uB85C\uC6B0)
DatabaseExplorerDialog.PreviewTable.Title=\uBBF8\uB9AC\uBCF4\uAE30 \uC81C\uD55C
DatabaseExplorerDialog.Procedures.Label=\uD504\uB85C\uC2DC\uC800
DatabaseExplorerDialog.Schemas.Label=\uC2A4\uD0A4\uB9C8
DatabaseExplorerDialog.Synonyms.Label=\uB3D9\uC758\uC5B4
DatabaseExplorerDialog.TableSize.Message=\uD14C\uC774\uBE14 ''{0}'' \uB294 {1} \uAC1C\uC758 \uB85C\uC6B0\uB97C \uAC00\uC9C0\uACE0 \uC788\uC2B5\uB2C8\uB2E4.
DatabaseExplorerDialog.TableSize.Title=\uB85C\uC6B0 \uC218
DatabaseExplorerDialog.Tables.Label=\uD14C\uC774\uBE14
DatabaseExplorerDialog.TargetDatabase.Message=\uB300\uC0C1 \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC120\uD0DD:
DatabaseExplorerDialog.TargetDatabase.Title=\uB300\uC0C1 \uB370\uC774\uD130\uBCA0\uC774\uC2A4
DatabaseExplorerDialog.Title=[{0}] \uC5F0\uACB0\uC758 \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uD0D0\uC0C9
DatabaseExplorerDialog.UnexpectedProfilingError.Message=\uC54C \uC218 \uC5C6\uB294 \uD504\uB85C\uD30C\uC77C\uB9C1 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD558\uC600\uC2B5\uB2C8\uB2E4:
DatabaseExplorerDialog.UnexpectedProfilingError.Title=\uD504\uB85C\uD30C\uC77C\uB9C1 \uC624\uB958
DatabaseExplorerDialog.Views.Label=\uBDF0
Dialog.Error.EnterInteger=Integer \uC22B\uC790\uB97C \uC785\uB825\uD558\uC2ED\uC2DC\uC624!
Dialog.Error.Header=\uC624\uB958
EnterConditionDialog.Title=\uC870\uAC74 \uC785\uB825
EnterListDialog.AddAll.Tooltip=\uC67C\uCABD\uC758 \uBAA8\uB4E0 \uC544\uC774\uD15C \uCD94\uAC00
EnterListDialog.AddOne.Tooltip=\uC67C\uCABD\uC758 \uC120\uD0DD\uD55C \uC544\uC774\uD15C\uB9CC \uCD94\uAC00
EnterListDialog.AvailableItems.Label=\uC0AC\uC6A9\uAC00\uB2A5\uD55C \uC544\uC774\uD15C:
EnterListDialog.RemoveAll.Tooltip=\uC624\uB978\uCABD\uC758 \uBAA8\uB4E0 \uC544\uC774\uD15C \uCD94\uAC00
EnterListDialog.RemoveOne.Tooltip=\uC624\uB978\uCABD\uC758 \uC120\uD0DD\uD55C \uC544\uC774\uD15C\uB9CC \uC81C\uAC70
EnterListDialog.Selection.Label=\uB2F9\uC2E0\uC758 \uC120\uD0DD:
EnterListDialog.Title=\uB9AC\uC2A4\uD2B8 \uC785\uB825
EnterMappingDialog.AutoSourceSelection.Label=\uC790\uB3D9 \uC18C\uC2A4 \uC120\uD0DD?
EnterMappingDialog.AutoTargetSelection.Label=\uC790\uB3D9 \uB300\uC0C1 \uC120\uD0DD?
EnterMappingDialog.Button.Add=\uCD94\uAC00(&A)
EnterMappingDialog.Button.Delete=\uC0AD\uC81C(&D)
EnterMappingDialog.Button.Guess=\uCD94\uCE21(&G)
EnterMappingDialog.HideUsedSources=\uD560\uB2F9\uB41C \uC6D0\uBCF8 \uD544\uB4DC \uC228\uAE30\uAE30?
EnterMappingDialog.HideUsedTargets=\uD560\uB2F9\uB41C \uB300\uC0C1 \uD544\uB4DC \uC228\uAE30\uAE30?
EnterMappingDialog.ResultMappings.Label=\uB9E4\uD551:
EnterMappingDialog.SourceFields.Label=\uC18C\uC2A4 \uD544\uB4DC:
EnterMappingDialog.TargetFields.Label=\uB300\uC0C1 \uD544\uB4DC:
EnterMappingDialog.Title=\uB9E4\uD551 \uC785\uB825
EnterOptionsDialog.AskOnExit.Label=\uB098\uAC08 \uB54C \uBB3C\uC5B4\uBCF4\uAE30?
EnterOptionsDialog.AutoSave.Label=\uBCC0\uACBD\uB41C \uD30C\uC77C\uC744 \uC790\uB3D9\uC73C\uB85C \uC800\uC7A5?
EnterOptionsDialog.AutoSplitHops.Label=\uC790\uB3D9\uC73C\uB85C Hop \uBD84\uB9AC?
EnterOptionsDialog.BackgroundColor.Label=\uBC30\uACBD\uC0C9:
EnterOptionsDialog.BackgroundColorGraph.Label=\uC791\uC5C5\uACF5\uAC04 \uBC30\uACBD\uC0C9:
EnterOptionsDialog.Branding.Label=\uBE0C\uB79C\uB529 \uADF8\uB798\uD53D \uBCF4\uC774\uAE30
EnterOptionsDialog.Button.Edit=\uBCC0\uACBD
EnterOptionsDialog.Button.Edit.Tooltip=\uC635\uC158 \uD3B8\uC9D1
EnterOptionsDialog.Button.Reset=\uCD08\uAE30\uD654
EnterOptionsDialog.Button.Reset.Tooltip=\uC635\uC158\uC744 \uAE30\uBCF8\uAC12\uC73C\uB85C \uCD08\uAE30\uD654
EnterOptionsDialog.CanvasAntiAliasing.Label=\uCE94\uBC84\uC2A4 \uC548\uD2F0-\uC568\uB9AC\uC5B4\uC2F1?
EnterOptionsDialog.ClearCustomParameters.Confirmation=\uCEE4\uC2A4\uD140 \uD50C\uB798\uADF8\uC640 \uD30C\uB77C\uBBF8\uD130\uB97C \uC0AD\uC81C\uD558\uC600\uC2B5\uB2C8\uB2E4.
EnterOptionsDialog.ClearCustomParameters.Label=\uC0AC\uC6A9\uC790 \uC815\uC758 \uD30C\uB77C\uBBF8\uD130 \uC9C0\uC6B0\uAE30 (Step / \uD50C\uB7EC\uADF8\uC778):
EnterOptionsDialog.ClearCustomParameters.Question=Step\uACFC \uD50C\uB7EC\uADF8\uC778 \uCC3D\uC758 \uBAA8\uB4E0 \uCEE4\uC2A4\uD140 \uD50C\uB798\uADF8\uB098 \uD30C\uB77C\uBBF8\uD130\uB97C \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?
EnterOptionsDialog.ClearCustomParameters.Title=\uC9C8\uBB38
EnterOptionsDialog.ClearCustomParameters.Tooltip=Step\uACFC \uD50C\uB7EC\uADF8\uC778\uC758 \uCC3D\uC5D0\uC11C \uBAA8\uB4E0 \uCEE4\uC2A4\uD140 \uD50C\uB798\uADF8\uC640 \uD30C\uB77C\uBBF8\uD130 \uC0AD\uC81C
EnterOptionsDialog.CopyOrDistributeDialog.Label="\uBCF5\uC0AC \uB610\uB294 \uBD84\uBC30" \uCC3D \uBCF4\uC774\uAE30?
EnterOptionsDialog.DefaultLocale.Label=\uC120\uD638\uD558\uB294 \uC5B8\uC5B4:
EnterOptionsDialog.DefaultPreviewSize.Label=\uBBF8\uB9AC\uBCF4\uAE30 \uCC3D\uC5D0\uC11C \uAE30\uBCF8 \uB77C\uC778 \uC218:
EnterOptionsDialog.DialogMiddlePercentage.Label=\uCC3D \uC911\uC559 \uBE44\uC728:
EnterOptionsDialog.EnableAutoCollapseCoreObjectTree.Label=\uC790\uB3D9\uC73C\uB85C \uC811\uD788\uB294 \uD314\uB81B\uD2B8 \uD2B8\uB9AC?
EnterOptionsDialog.FailoverLocale.Label=\uB300\uCCB4 \uC5B8\uC5B4:
EnterOptionsDialog.FixedWidthFont.Label=\uACE0\uC815\uD3ED \uD3F0\uD2B8:
EnterOptionsDialog.General.Label=\uC77C\uBC18
EnterOptionsDialog.GraphFont.Label=\uC791\uC5C5\uACF5\uAC04 \uAE00\uAF34
EnterOptionsDialog.GridSize.Label=\uADF8\uB9AC\uB4DC \uD06C\uAE30
EnterOptionsDialog.HelpToolTipsEnabled.Label=\uB3C4\uC6C0\uB9D0 \uD234\uD301 \uBCF4\uAE30?
EnterOptionsDialog.IconSize.Label=\uC791\uC5C5\uACF5\uAC04 \uC544\uC774\uCF58 \uD06C\uAE30:
EnterOptionsDialog.LineWidth.Label=\uC791\uC5C5\uACF5\uAC04 \uC904 \uB113\uC774:
EnterOptionsDialog.LookAndFeel.Label=\uB8E9\uC564\uD544
EnterOptionsDialog.MaxLogLineTimeout.Label=\uC911\uC559\uC758 \uB85C\uADF8 \uB77C\uC778 \uC800\uC7A5 \uC2DC\uAC04\uC81C\uD55C (\uBD84)
EnterOptionsDialog.MaxNrHistLinesSize.Label=\uB85C\uADF8 \uC774\uB825 \uBCF4\uAE30\uC5D0\uC11C \uCD5C\uB300 \uB77C\uC778\uC218
EnterOptionsDialog.MaxNrLogLinesSize.Label=\uB85C\uADF8\uCC3D\uC758 \uCD5C\uB300 \uB77C\uC778\uC218
EnterOptionsDialog.MaximumUndo.Label=\uCD5C\uB300 \uC2E4\uD589\uCDE8\uC18C \uB808\uBCA8:
EnterOptionsDialog.NoteFont.Label=\uB178\uD2B8\uC758 \uD3F0\uD2B8:
EnterOptionsDialog.OnlyActiveFile.Label=\uBA54\uC778 \uD2B8\uB9AC\uC5D0\uC11C \uD65C\uC131\uD654\uB41C \uD30C\uC77C\uB9CC \uBCF4\uAE30
EnterOptionsDialog.OnlySaveUsedConnections.Label=\uC0AC\uC6A9\uB41C \uC5F0\uACB0\uB9CC XML\uB85C \uC800\uC7A5?
EnterOptionsDialog.OpenLastFileStartup.Label=\uC2DC\uC791\uD560 \uB54C\uC5D0 \uB9C8\uC9C0\uB9C9 \uD30C\uC77C \uC5F4\uAE30?
EnterOptionsDialog.ReplaceDB.Label=\uC5F4\uAE30/\uAC00\uC838\uC624\uAE30\uD558\uB294 \uB3D9\uC548 \uAE30\uC874 \uC5F0\uACB0 \uBC14\uAFD4\uCE58\uAE30?
EnterOptionsDialog.ReplaceDBAsk.Label=\uC5F4\uAE30/\uAC00\uC838\uC624\uAE30 \uACFC\uC815\uC5D0\uC11C \uAE30\uC874 \uC5F0\uACB0 \uBC14\uAFD4\uCE58\uAE30 \uBB3C\uC5B4\uBCF4\uAE30?
EnterOptionsDialog.ShadowSize.Label=\uC791\uC5C5\uACF5\uAC04\uC758 \uADF8\uB9BC\uC790 \uD06C\uAE30:
EnterOptionsDialog.ShowRepoDialog.Label=\uC2DC\uC791 \uC2DC\uC5D0 \uC800\uC7A5\uC18C \uCC3D \uBCF4\uAE30?
EnterOptionsDialog.ShowSaveConfirmation.Label="\uC800\uC7A5" \uCC3D \uBCF4\uAE30?
EnterOptionsDialog.ShowTipsStartup.Label=\uC2DC\uC791\uD560 \uB54C \uD301 \uBCF4\uAE30?
EnterOptionsDialog.ShowWelcomePage.Label=\uC2DC\uC791 \uC2DC \uD658\uC601 \uD398\uC774\uC9C0 \uBCF4\uAE30?
EnterOptionsDialog.TabColor.Label=\uD0ED \uC0C9\uAE54:
EnterOptionsDialog.Title=Kettle \uC635\uC158
EnterOptionsDialog.ToolTipsEnabled.Label=\uD234\uD301 \uBCF4\uC774\uAE30?
EnterOptionsDialog.UseDatabaseCache.Label=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uCE90\uC2DC \uC0AC\uC6A9?
EnterOptionsDialog.UseOSLook.Label=OS\uC758 \uBAA8\uC591\uC0C8 \uC0AC\uC6A9?
EnterOptionsDialog.VersionCheck.Label=\uC5C5\uB370\uC774\uD2B8 \uD655\uC778 \uAC74\uB108\uB6F0\uAE30?
EnterPrintDialog.BottomMargin.Label=\uC544\uB798 \uC5EC\uBC31 (\uC778\uCE58):
EnterPrintDialog.Cols.Label=\uCEEC\uB7FC:
EnterPrintDialog.LeftMargin.Label=\uC67C\uCABD \uC5EC\uBC31 (\uC778\uCE58):
EnterPrintDialog.PrintArea.Label=\uC778\uC1C4 \uC601\uC5ED:
EnterPrintDialog.Rows.Label=\uB85C\uC6B0:
EnterPrintDialog.Title=\uD398\uC774\uC9C0 \uC778\uC1C4
EnterPrintDialog.TopMargin.Label=\uC704 \uC5EC\uBC31 (\uC778\uCE58):
EnterSearchDialog.DB.Label=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0 \uAC80\uC0C9
EnterSearchDialog.DB.Tooltip=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0 \uAC80\uC0C9
EnterSearchDialog.FilterSelection.Label=\uD544\uD130
EnterSearchDialog.Note.Label=\uB178\uD2B8 \uCC3E\uAE30
EnterSearchDialog.Note.Tooltip=\uB178\uD2B8 \uCC3E\uAE30
EnterSearchDialog.Shell.Title=\uBA54\uD0C0\uB370\uC774\uD130 \uAC80\uC0C9
EnterSearchDialog.Step.Label=Step \uAC80\uC0C9
EnterSearchDialog.Step.Tooltip=Step \uAC80\uC0C9
EnterStringsDialog.StringName.Label=\uC774\uB984
EnterStringsDialog.StringValue.Label=\uAC12
EnterStringsDialog.Title=\uBB38\uC790 \uAC12\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624
EnterValueDialog.ConversionFormat.Label=\uBCC0\uD658 \uD615\uC2DD:
EnterValueDialog.Length.Label=\uAE38\uC774:
EnterValueDialog.Precision.Label=\uC815\uBC00\uB3C4:
EnterValueDialog.TestResult.Message=\uACB0\uACFC\uAC12:\n\n{0}
EnterValueDialog.TestResult.Title=\uAC12
EnterValueDialog.Title=\uAC12\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624
EnterValueDialog.Type.Label=\uD615\uC2DD:
EnterValueDialog.Value.Label=\uAC12:
ErrorDialog.ShowDetails.Title=\uC624\uB958 \uC0C1\uC138\uC815\uBCF4
GetDatabaseInfoProgressDialog.Error.GettingInfoTable=\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0\uC11C \uC815\uBCF4\uB97C \uAC00\uC838\uC624\uB294 \uC911 \uBB38\uC81C \uBC1C\uC0DD: {0}
GetDatabaseInfoProgressDialog.Error.Message=\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0\uC11C \uC815\uBCF4\uB97C \uAC00\uC838\uC624\uB294 \uC911 \uC624\uB958!
GetDatabaseInfoProgressDialog.Error.Title=\uC815\uBCF4 \uAC00\uC838\uC624\uAE30 \uC624\uB958
GetPreviewTableProgressDialog.Error.Message=\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0\uC11C \uC815\uBCF4\uB97C \uAC00\uC838\uC624\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD!
GetPreviewTableProgressDialog.Error.Title=\uC815\uBCF4 \uAC00\uC838\uC624\uAE30 \uC624\uB958
GetQueryFieldsProgressDialog.Error.Message=\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0\uC11C \uC815\uBCF4\uB97C \uAC00\uC838\uC624\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD!
GetQueryFieldsProgressDialog.Error.Title=\uC815\uBCF4 \uAC00\uC838\uC624\uAE30 \uC624\uB958
GetTableSizeProgressDialog.Error.Message=\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0\uC11C \uC815\uBCF4\uB97C \uAC00\uC838\uC624\uB294 \uC911 \uC624\uB958\uBC1C\uC0DD!
GetTableSizeProgressDialog.Error.Title=\uC815\uBCF4 \uAC00\uC838\uC624\uAE30 \uC624\uB958
SQLEditor.Button.ClearCache=\uCE90\uC2DC \uBE44\uC6B0\uAE30(&C)
SQLEditor.Button.ClearCache.Tooltip=\uACB0\uACFC\uAC00 \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC758 \uC2E4\uC81C \uC0C1\uD669\uACFC \uC77C\uCE58\uD558\uC9C0 \uC54A\uB294\uB2E4\uBA74 \uC774 \uBC84\uD2BC\uC744 \uC0AC\uC6A9\uD558\uC2ED\uC2DC\uC624.\nKettle \uC774\uC678\uC758 \uB2E4\uB978 \uB3C4\uAD6C\uB85C \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0\uC11C \uD14C\uC774\uBE14\uC744 \uC0DD\uC131\uD558\uAC70\uB098 \uC218\uC815\uD558\uBA74 \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uCE90\uC2DC\uB294 \uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uC0C1\uD0DC\uB85C \uBCC0\uACBD\uB429\uB2C8\uB2E4.
SQLEditor.Button.Execute=\uC2E4\uD589(&E)
SQLEditor.ClearWholeCache.Message=\uC804\uCCB4 \uCE90\uC2DC \uC0AD\uC81C?\n''\uC544\uB2C8\uC624''\uB97C \uB204\uB974\uBA74 \uB370\uC774\uD130\uBCA0\uC774\uC2A4 ''{0}''\uC758 \uCE90\uC2DC\uB9CC \uC0AD\uC81C
SQLEditor.ClearWholeCache.Title=\uBAA8\uB4E0 \uCE90\uC2DC\uB97C \uBE44\uC6B0\uAE30?
SQLEditor.ConnectionCacheCleared.Message=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0 ''{0}''\uC5D0 \uB300\uD55C \uCE90\uC2DC\uB97C \uC0AD\uC81C\uD558\uC600\uC2B5\uB2C8\uB2E4.
SQLEditor.ConnectionCacheCleared.Title=\uCE90\uC2DC \uC0AD\uC81C
SQLEditor.Editor.Label=\uC138\uBBF8\uCF5C\uB860 '';'' \uC73C\uB85C \uAD6C\uBD84\uB41C SQL \uBB38\uC7A5
SQLEditor.Error.CouldNotConnect.Message=\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0 \uC5F0\uACB0\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4!\n\uC5F0\uACB0 [{0}] \uC758 \uC124\uC815\uC744 \uD655\uC778\uD558\uC2ED\uC2DC\uC624\n{1}
SQLEditor.Error.CouldNotConnect.Title=\uC5F0\uACB0\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
SQLEditor.ErrorExecSQL.Message=\uB2E4\uC74C SQL\uC744 \uC2E4\uD589\uD558\uB294\uB370 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD558\uC600\uC2B5\uB2C8\uB2E4:\n\n{0}
SQLEditor.ErrorExecSQL.Title=SQL \uC2E4\uD589 \uC624\uB958
SQLEditor.LineNr.Label=\uC904 \uBC88\uD638: {0}
SQLEditor.Log.OnPartition=\uD30C\uD2F0\uC158 ''{0}''
SQLEditor.Log.SQLExecError=\uC2E4\uD589 \uC911 \uC624\uB958: {0}\n{1}
SQLEditor.Log.SQLExecuted=SQL\uC744 \uC2E4\uD589\uD558\uC600\uC2B5\uB2C8\uB2E4: {0}
SQLEditor.Log.StatsExecuted={0} SQL \uBB38\uC7A5\uC744 \uC2E4\uD589\uD558\uC600\uC2B5\uB2C8\uB2E4.
SQLEditor.NoRows.Message=SQL \uBB38\uC7A5\uC5D0\uC11C \uACB0\uACFC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4:\n\n{0}
SQLEditor.NoRows.Title=\uACB0\uACFC \uC5C6\uC74C
SQLEditor.Position.Label=\uC904 {0} \uD589 {1}
SQLEditor.Result.Message=SQL \uBB38\uC7A5\uC758 \uACB0\uACFC\uB294 \uC544\uB798\uC640 \uAC19\uC2B5\uB2C8\uB2E4
SQLEditor.Result.Title=SQL \uBB38\uC7A5\uC758 \uACB0\uACFC
SQLEditor.ResultRows.Title=SQL \uBB38\uC7A5 #{0}
SQLEditor.Title=\uAC04\uB2E8\uD55C SQL \uD3B8\uC9D1\uAE30
SQLEditor.WholeCacheCleared.Message=\uBAA8\uB4E0 \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uCE90\uC2DC\uB97C \uC0AD\uC81C\uD558\uC600\uC2B5\uB2C8\uB2E4.
SQLEditor.WholeCacheCleared.Title=\uCE90\uC2DC \uC0AD\uC81C
SQLStatementDialog.Button.ExecSQL=SQL \uC2E4\uD589(&x)
SQLStatementDialog.Button.ViewSQL=SQL \uBCF4\uAE30(&V)
SQLStatementDialog.Error.CouldNotConnect=\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0 \uC5F0\uACB0\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4 [{0}]
SQLStatementDialog.Error.CouldNotExec=\uC544\uB798 \uBB38\uC7A5\uC744 \uC2E4\uD589\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4:\n{0}
SQLStatementDialog.Error.Message=\uC120\uD0DD\uD55C \uBB38\uC7A5\uC744 \uC2E4\uD589\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. {0} \uC624\uB958\uAC00 \uC788\uC2B5\uB2C8\uB2E4.
SQLStatementDialog.Error.Title=\uC624\uB958
SQLStatementDialog.Log.Connection=-- \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0 : {0}
SQLStatementDialog.Log.Error=-- \uC624\uB958 \uBA54\uC138\uC9C0 : {0}
SQLStatementDialog.Log.Step=-- Step : {0}
SQLStatementDialog.Log.Undefined=<\uC815\uC758\uB418\uC9C0\uC54A\uC74C>
SQLStatementDialog.Success.Message={0} SQL \uBB38\uC7A5\uC744 \uC2E4\uD589\uD558\uC600\uC2B5\uB2C8\uB2E4
SQLStatementDialog.Success.Title=\uC131\uACF5
SQLStatementDialog.TableCol.Connection=\uC5F0\uACB0
SQLStatementDialog.TableCol.Error=\uC624\uB958
SQLStatementDialog.TableCol.SQL=SQL
SQLStatementDialog.TableCol.Stepname=Step \uC774\uB984
SQLStatementDialog.Title=\uC2E4\uD589\uD560 SQL \uBB38\uC7A5 \uB9AC\uC2A4\uD2B8
SQLStatementDialog.ViewSQL.Message=SQL \uBB38\uC7A5:
SQLStatementDialog.ViewSQL.Title=SQL \uBB38\uC7A5
StepFieldsDialog.Fields.Label=\uD544\uB4DC:
StepFieldsDialog.Name.Label=Step \uC774\uB984:
StepFieldsDialog.TableCol.Fieldname=\uD544\uB4DC \uC774\uB984
StepFieldsDialog.TableCol.Length=\uAE38\uC774
StepFieldsDialog.TableCol.Precision=\uC815\uBC00\uB3C4
StepFieldsDialog.TableCol.Type=\uD615\uC2DD
XulDatabaseDialog.Error.General=\uC77C\uBC18 \uC624\uB958
XulDatabaseDialog.Error.HandleXul=XUL \uC815\uC758\uB97C \uC774\uC6A9\uD55C \uC791\uC5C5 \uC624\uB958
XulDatabaseDialog.Error.ResourcesNotFound=\uAE30\uBCF8 \uB85C\uCF00\uC77C {0}\uC758 \uB9AC\uC18C\uC2A4 \uBC88\uB4E4\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4, \uB300\uCCB4 \uB85C\uCF00\uC77C\uC740 {1}
XulDatabaseDialog.Error.ResourcesNotFound.Title=\uCC3D\uC5D0\uC11C \uC4F0\uB294 \uBB38\uC790\uC5F4 \uB9AC\uC18C\uC2A4\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4
XulDatabaseDialog.Error.Title=\uC624\uB958
tooltip_refresh=\uD2B8\uB9AC \uC0C8\uB85C\uACE0\uCE68

View File

@ -0,0 +1,94 @@
#
# EnterSearchDialog
#
EnterSearchDialog.Shell.Title = Busca meta dados
EnterSearchDialog.Step.Label = Busca steps
EnterSearchDialog.Step.Tooltip = Busca steps
EnterSearchDialog.DB.Label = Busca conexões de banco de dados
EnterSearchDialog.DB.Tooltip = Busca conexões de banco de dados
EnterSearchDialog.Note.Label = Busca notas
EnterSearchDialog.Note.Tooltip = Busca notas
EnterSearchDialog.FilterSelection.Label = Filtro
EnterOptionsDialog.ToolTipsEnabled.Label=Mostrar tooltips?
#
# DatabaseDialog
#
DatabaseDialog.Shell.title=Connection information
DatabaseDialog.button.Test=\ Test
DatabaseDialog.button.Explore=\ Explore
DatabaseDialog.button.FeatureList=\ Feature List
DatabaseDialog.DbTab.title=General
DatabaseDialog.label.ConnectionName=Connection name
DatabaseDialog.label.ConnectionType=Connection type
DatabaseDialog.label.AccessMethod=Method of access
DatabaseDialog.label.ServerHostname=Server host name
DatabaseDialog.label.DatabaseName=Database name
DatabaseDialog.label.PortNumber=Port number
DatabaseDialog.label.Username=Username
DatabaseDialog.label.Password=Password
DatabaseDialog.PoolTab.title=Pooling
DatabaseDialog.label.UseConnectionPool=Use a connection pool
DatabaseDialog.label.InitialPoolSize=The initial pool size
DatabaseDialog.label.MaximumPoolSize=The maximum pool size
DatabaseDialog.OracleTab.title=Oracle
DatabaseDialog.label.TablespaceForData=Tablespace for data
DatabaseDialog.label.TablespaceForIndexes=Tablespace for indexes
DatabaseDialog.IfxTab.title=Informix
DatabaseDialog.label.InformixServername=Informix Servername
DatabaseDialog.label.Sap=SAP ERP
DatabaseDialog.label.Language=Language
DatabaseDialog.label.SystemNumber=System Number
DatabaseDialog.label.SapClient=SAP Client
DatabaseDialog.GenericTab.title=Generic
DatabaseDialog.GenericTab.tooltip=Settings in case you want to use a generic database with a non-supported JDBC driver
DatabaseDialog.label.Url=URL
DatabaseDialog.label.DriverClass=Driver class
DatabaseDialog.label.Options=Options
DatabaseDialog.tooltip.Options=Extra options to set in the URL
DatabaseDialog.button.ShowHelp=Show help text on option usage
DatabaseDialog.column.DbType=Database Type
DatabaseDialog.column.Parameter=Parameter
DatabaseDialog.column.Value=Value
DatabaseDialog.tooltip.DbType=The extra parameters to set in the URL to connectect to the database
DatabaseDialog.tooltip.Parameter=The values to set for the parameters
DatabaseDialog.SQLTab.title=SQL
DatabaseDialog.SQLTab.tooltip=Specify the SQL to execute after connecting
DatabaseDialog.label.Statements=The statements to execute right after connecting (separated by ;)
DatabaseDialog.ClusterTab.title=Cluster
DatabaseDialog.ClusterTab.tooltip=Optional clustering information
DatabaseDialog.label.UseClustering=Use clustering? EXPERIMENTAL\!\!
DatabaseDialog.tooltip.UseClustering=Enable clustering to add all kinds of clustering information.
DatabaseDialog.column.PartitionId=Partition ID
DatabaseDialog.column.Hostname=Hostname
DatabaseDialog.column.Port=Port
DatabaseDialog.column.DatabaseName=Database name
DatabaseDialog.column.Username=Username
DatabaseDialog.column.Password=Password
DatabaseDialog.tooltip.PartitionId=The extra parameters to set in the URL to connect to the database
DatabaseDialog.tooltip.Hostname=The values to set for the parameters
DatabaseDialog.HelpText.title=Options help text
DatabaseDialog.HelpText.description=This is the help text for [{0}] :
DatabaseDialog.ErrorHelpText.title=Error!
DatabaseDialog.ErrorHelpText.description=Unable to get the help text. Please make sure all required parameters are entered correctly!
DatabaseDialog.ErrorParameters.title=Error!
DatabaseDialog.ErrorParameters.description=Please make sure all required parameters are entered correctly!
DatabaseDialog.ErrorConnectionInfo.title=Error
DatabaseDialog.ErrorConnectionInfo.description=Unable to get the connection information
DatabaseDialog.report.ConnectionWithPartOk=Connection to database [{0}] with partition id [{1}] is OK.
DatabaseDialog.report.ConnectionWithPartError=Error connecting to database [{0}] with partition id [{1}] : {2}
DatabaseDialog.report.Hostname= Hostname \:
DatabaseDialog.report.Port= Port \:
DatabaseDialog.report.DatabaseName= Database name \:
DatabaseDialog.report.ConnectionOk=Connection to database [{0}] is OK.
DatabaseDialog.report.ConnectionError=Error connecting to database [{0}] \:
DatabaseDialog.ConnectionReport.title=Connection report
DatabaseDialog.ConnectionReport.description=Here is the connection report
DatabaseDialog.ErrorParameters2.title=Error!
DatabaseDialog.ErrorParameters2.description=Please make sure all required parameters are entered correctly\:\n{0}
DatabaseDialog.FeatureList.title=Feature list
DatabaseDialog.FeatureList.title2="The list of features:"
DatabaseDialog.FeatureListError.title=Error!
DatabaseDialog.FeatureListError.description=Unable to get feature list. Please make sure all required parameters are entered correctly!

View File

@ -0,0 +1,94 @@
#
# EnterSearchDialog
#
EnterSearchDialog.Shell.Title = Busca meta dados
EnterSearchDialog.Step.Label = Busca steps
EnterSearchDialog.Step.Tooltip = Busca steps
EnterSearchDialog.DB.Label = Busca conexões de banco de dados
EnterSearchDialog.DB.Tooltip = Busca conexões de banco de dados
EnterSearchDialog.Note.Label = Busca notas
EnterSearchDialog.Note.Tooltip = Busca notas
EnterSearchDialog.FilterSelection.Label = Filtro
EnterOptionsDialog.ToolTipsEnabled.Label=Mostrar tooltips?
#
# DatabaseDialog
#
DatabaseDialog.Shell.title=Connection information
DatabaseDialog.button.Test=\ Test
DatabaseDialog.button.Explore=\ Explore
DatabaseDialog.button.FeatureList=\ Feature List
DatabaseDialog.DbTab.title=General
DatabaseDialog.label.ConnectionName=Connection name
DatabaseDialog.label.ConnectionType=Connection type
DatabaseDialog.label.AccessMethod=Method of access
DatabaseDialog.label.ServerHostname=Server host name
DatabaseDialog.label.DatabaseName=Database name
DatabaseDialog.label.PortNumber=Port number
DatabaseDialog.label.Username=Username
DatabaseDialog.label.Password=Password
DatabaseDialog.PoolTab.title=Pooling
DatabaseDialog.label.UseConnectionPool=Use a connection pool
DatabaseDialog.label.InitialPoolSize=The initial pool size
DatabaseDialog.label.MaximumPoolSize=The maximum pool size
DatabaseDialog.OracleTab.title=Oracle
DatabaseDialog.label.TablespaceForData=Tablespace for data
DatabaseDialog.label.TablespaceForIndexes=Tablespace for indexes
DatabaseDialog.IfxTab.title=Informix
DatabaseDialog.label.InformixServername=Informix Servername
DatabaseDialog.label.Sap=SAP ERP
DatabaseDialog.label.Language=Language
DatabaseDialog.label.SystemNumber=System Number
DatabaseDialog.label.SapClient=SAP Client
DatabaseDialog.GenericTab.title=Generic
DatabaseDialog.GenericTab.tooltip=Settings in case you want to use a generic database with a non-supported JDBC driver
DatabaseDialog.label.Url=URL
DatabaseDialog.label.DriverClass=Driver class
DatabaseDialog.label.Options=Options
DatabaseDialog.tooltip.Options=Extra options to set in the URL
DatabaseDialog.button.ShowHelp=Show help text on option usage
DatabaseDialog.column.DbType=Database Type
DatabaseDialog.column.Parameter=Parameter
DatabaseDialog.column.Value=Value
DatabaseDialog.tooltip.DbType=The extra parameters to set in the URL to connectect to the database
DatabaseDialog.tooltip.Parameter=The values to set for the parameters
DatabaseDialog.SQLTab.title=SQL
DatabaseDialog.SQLTab.tooltip=Specify the SQL to execute after connecting
DatabaseDialog.label.Statements=The statements to execute right after connecting (separated by ;)
DatabaseDialog.ClusterTab.title=Cluster
DatabaseDialog.ClusterTab.tooltip=Optional clustering information
DatabaseDialog.label.UseClustering=Use clustering? EXPERIMENTAL\!\!
DatabaseDialog.tooltip.UseClustering=Enable clustering to add all kinds of clustering information.
DatabaseDialog.column.PartitionId=Partition ID
DatabaseDialog.column.Hostname=Hostname
DatabaseDialog.column.Port=Port
DatabaseDialog.column.DatabaseName=Database name
DatabaseDialog.column.Username=Username
DatabaseDialog.column.Password=Password
DatabaseDialog.tooltip.PartitionId=The extra parameters to set in the URL to connect to the database
DatabaseDialog.tooltip.Hostname=The values to set for the parameters
DatabaseDialog.HelpText.title=Options help text
DatabaseDialog.HelpText.description=This is the help text for [{0}] :
DatabaseDialog.ErrorHelpText.title=Error!
DatabaseDialog.ErrorHelpText.description=Unable to get the help text. Please make sure all required parameters are entered correctly!
DatabaseDialog.ErrorParameters.title=Error!
DatabaseDialog.ErrorParameters.description=Please make sure all required parameters are entered correctly!
DatabaseDialog.ErrorConnectionInfo.title=Error
DatabaseDialog.ErrorConnectionInfo.description=Unable to get the connection information
DatabaseDialog.report.ConnectionWithPartOk=Connection to database [{0}] with partition id [{1}] is OK.
DatabaseDialog.report.ConnectionWithPartError=Error connecting to database [{0}] with partition id [{1}] : {2}
DatabaseDialog.report.Hostname= Hostname \:
DatabaseDialog.report.Port= Port \:
DatabaseDialog.report.DatabaseName= Database name \:
DatabaseDialog.report.ConnectionOk=Connection to database [{0}] is OK.
DatabaseDialog.report.ConnectionError=Error connecting to database [{0}] \:
DatabaseDialog.ConnectionReport.title=Connection report
DatabaseDialog.ConnectionReport.description=Here is the connection report
DatabaseDialog.ErrorParameters2.title=Error!
DatabaseDialog.ErrorParameters2.description=Please make sure all required parameters are entered correctly\:\n{0}
DatabaseDialog.FeatureList.title=Feature list
DatabaseDialog.FeatureList.title2="The list of features:"
DatabaseDialog.FeatureListError.title=Error!
DatabaseDialog.FeatureListError.description=Unable to get feature list. Please make sure all required parameters are entered correctly!

View File

@ -0,0 +1,271 @@
#File generated by Hitachi Vantara Translator for package 'org.pentaho.di.ui.core.database.dialog' in locale 'zh_CN'
#
#
#Tue Feb 28 13:35:17 CST 2012
EnterMappingDialog.HideUsedSources=\u9690\u85CF\u5DF2\u7ECF\u5339\u914D\u7684\u6E90\u5B57\u6BB5
EnterOptionsDialog.ShowSaveConfirmation.Label=\u663E\u793A"\u4FDD\u5B58"\u5BF9\u8BDD\u6846?
DatabaseExplorerDialog.Title=\u5728\u8FDE\u63A5 [{0}] \u4E0A\u7684\u6570\u636E\u5E93\u6D4F\u89C8\u5668
DatabaseExplorerDialog.TableSize.Message=\u8868 ''{0}'' \u5305\u542B {1} \u884C
EnterOptionsDialog.EnableAutoCollapseCoreObjectTree.Label=\u81EA\u52A8\u6298\u53E0\u6B65\u9AA4\u6811
EnterOptionsDialog.ReplaceDB.Label=\u6253\u5F00/\u5BFC\u5165\u65F6\u662F\u5426\u66FF\u6362\u6570\u636E\u5E93\u8FDE\u63A5?
EnterOptionsDialog.DialogMiddlePercentage.Label=D\u5BF9\u8BDD\u6846\u7684\u4E2D\u90E8\u4F4D\u7F6E\u767E\u5206\u6BD4\:
CheckResultDialog.Button.EditOriginStep=\u7F16\u8F91\u6E90\u6B65\u9AA4
EnterOptionsDialog.General.Label=\u4E00\u822C
CheckResultDialog.Result.Label=\u7ED3\u679C
EnterOptionsDialog.ShowRepoDialog.Label=\u542F\u52A8\u65F6\u663E\u793A\u8D44\u6E90\u5E93\u5BF9\u8BDD\u6846?
EnterOptionsDialog.Button.Edit.Tooltip=\u7F16\u8F91\u9009\u9879
EnterOptionsDialog.ClearCustomParameters.Question=\u786E\u5B9E\u8981\u5220\u9664\uFF1F?
EnterOptionsDialog.OnlyActiveFile.Label=\u5728\u6811\u4E0A\u53EA\u663E\u793A\u6FC0\u6D3B\u7684\u6587\u4EF6?
EnterOptionsDialog.UseOSLook.Label=\u4F7F\u7528\u64CD\u4F5C\u7CFB\u7EDF\u5916\u89C2?
EnterOptionsDialog.CanvasAntiAliasing.Label=\u753B\u5E03\u53CD\u952F\u9F7F?
EnterSearchDialog.DB.Label=\u641C\u7D22\u6570\u636E\u5E93\u8FDE\u63A5
DatabaseDialog.ErrorConnectionInfo.title=Error
SQLEditor.Log.SQLExecuted=\u6267\u884C\u7684 SQL\: {0}
DatabaseDialog.SQLTab.tooltip=\u5EFA\u7ACB\u8FDE\u63A5\u540E\u8981\u6267\u884C\u7684 SQL
DatabaseDialog.column.PoolParameter=\u8FDE\u63A5\u6C60\u53C2\u6570
GetPreviewTableProgressDialog.Error.Message=\u4ECE\u6570\u636E\u5E93\u83B7\u53D6\u4FE1\u606F\u65F6\u53D1\u751F\u9519\u8BEF
CheckResultDialog.TextDialog.SubtitlePlural=\u6D88\u606F\:
SQLEditor.Button.ClearCache=\u6E05\u9664\u7F13\u5B58(&C)
DatabaseExplorerDialog.UnexpectedProfilingError.Title=\u9884\u89C8\u9519\u8BEF
DatabaseDialog.ErrorParameters.title=\u9519\u8BEF\!
DatabaseDialog.ExplorerNotImplemented.Title=\u5BF9\u4E0D\u8D77
DatabaseExplorerDialog.PreviewTable.Title=\u9884\u89C8\u9650\u5236
EnterOptionsDialog.GridSize.Label=\u683C\u7F51\u5927\u5C0F
EnterMappingDialog.Button.Add=&Add (&A)
DatabaseExplorerDialog.Tables.Label=\u8868
DatabaseDialog.tooltip.DbType=\u4E3A\u8FDE\u63A5\u5230\u6570\u636E\u5E93\u5728 URL \u91CC\u8981\u8BBE\u7F6E\u7684\u989D\u5916\u53C2\u6570
DatabaseExplorerDialog.Menu.OpenSQL=\u6253\u5F00 {{0}} \u4E0A\u7684 SQL
DatabaseDialog.button.Explore=\u6D4F\u89C8
EnterOptionsDialog.OnlySaveUsedConnections.Label=\u53EA\u4FDD\u5B58\u4F7F\u7528\u7684\u6570\u636E\u5E93\u8FDE\u63A5\u5230 XML?
DatabaseDialog.label.Sap=SAP R/3
DatabaseDialog.column.Username=\u7528\u6237\u540D
DatabaseDialog.label.Username=\u7528\u6237\u540D
GetQueryFieldsProgressDialog.Error.Title=\u9519\u8BEF\u83B7\u53D6\u4FE1\u606F
EnterOptionsDialog.DefaultLocale.Label=\u7F3A\u7701\u8BED\u8A00\:
SQLEditor.Result.Title=SQL \u8BED\u53E5\u7684\u8FD0\u884C\u7ED3\u679C
DatabaseDialog.ExplorerNotImplemented.Message=\u5BF9\u4E0D\u8D77\uFF0C\u8BE5\u6570\u636E\u5E93\u7684\u6D4F\u89C8\u5668\u8FD8\u6CA1\u6709\u5B9E\u73B0\u3002
EnterMappingDialog.Button.Guess=\u731C\u4E00\u731C(&G)
SQLEditor.ConnectionCacheCleared.Message=\u6570\u636E\u5E93\u8FDE\u63A5 ''{0}''\u7684\u7F13\u5B58\u5DF2\u88AB\u6E05\u7A7A
DatabaseDialog.OracleTab.title=Oracle
DatabaseDialog.JDBCOptions.Tab={0}\: JDBC \u9009\u9879\u5E2E\u52A9
DatabaseDialog.button.ShowHelp=\u663E\u793A\u9009\u9879\u5E2E\u52A9
DatabaseDialog.tooltip.Parameter=\u53C2\u6570\u8981\u8BBE\u7F6E\u7684\u503C
CheckResultDialog.Button.ViewMessage=\u67E5\u770B\u6D88\u606F
DatabaseDialog.label.SQLServerInstance=SQLServer \u5B9E\u4F8B\u540D
EnterOptionsDialog.AutoSplitHops.Tooltip=\u5982\u679C\u5728\u4E00\u6761\u8282\u70B9\u8FDE\u63A5\u4E0A\u653E\u7F6E\u4E86\u4E00\u4E2A\u8282\u70B9,\u662F\u5426\u8981\u81EA\u52A8\u5206\u5272\u8FD9\u4E2A\u8282\u70B9\u8FDE\u63A5\u6210\u4E3A\u4E24\u6761\u8FDE\u63A5,\u5206\u522B\u8FDE\u63A5\u539F\u8282\u70B9\u548C\u65B0\u8282\u70B9.
DatabaseDialog.label.UseClustering=\u4F7F\u7528\u96C6\u7FA4? \u5B9E\u9A8C\u9636\u6BB5\!\!
EnterSearchDialog.FilterSelection.Label=\u8FC7\u6EE4\u5668
DatabaseDialog.label.AdvancedForceIdentifiersUpperCase=\u5C06\u6240\u6709\u6807\u8BC6\u7B26\u5F3A\u5236\u8F6C\u6362\u4E3A\u5927\u5199
XulDatabaseDialog.Error.ResourcesNotFound.Title=\u5BF9\u8BDD\u6846\u6CA1\u6709\u627E\u5230\u53EF\u7528\u7684\u8D44\u6E90\u6587\u4EF6
SQLEditor.ConnectionCacheCleared.Title=\u7F13\u5B58\u6E05\u9664
EnterOptionsDialog.HelpToolTipsEnabled.Label=\u663E\u793A\u5E2E\u52A9\u63D0\u793A?
DatabaseDialog.ClusterTab.tooltip=\u53EF\u9009\u96C6\u7FA4\u4FE1\u606F
DatabaseDialog.button.Test=\u6D4B\u8BD5
CheckResultDialog.Stepname.Label=\u6B65\u9AA4\u540D\u79F0
EnterOptionsDialog.MaxNrHistLinesSize.Label=\u65E5\u5FD7\u89C6\u56FE\u7684\u6700\u5927\u884C\u6570
DatabaseDialog.label.Language=\u8BED\u8A00
DatabaseDialog.label.Options=\u9009\u9879
DatabaseDialog.label.DriverClass=\u9A71\u52A8\u7C7B
EnterMappingDialog.TargetFields.Label=\u76EE\u6807\u5B57\u6BB5
SQLEditor.WholeCacheCleared.Message=\u5168\u90E8\u6570\u636E\u5E93\u7F13\u5B58\u88AB\u6E05\u9664
SQLEditor.Log.OnPartition=\u5206\u533A ''{0}''
EnterSearchDialog.Shell.Title=\u641C\u7D22\u5143\u6570\u636E
DatabaseDialog.ClusterTab.title=\u96C6\u7FA4
SQLEditor.Button.ClearCache.Tooltip=\u7F13\u5B58\u53EA\u662F\u4E3A\u4E86\u63D0\u9AD8\u6027\u80FD\uFF0C\u5F53\u6570\u636E\u5E93\u7ED3\u6784\u6216\u6570\u636E\u53D1\u751F\u4E86\u53D8\u5316\uFF0C\u4E00\u822C\u90FD\u8981\u6E05\u9664\u7F13\u5B58\u3002
EnterOptionsDialog.ClearCustomParameters.Label=\u6E05\u9664\u81EA\u5B9A\u4E49\u53C2\u6570 (\u6B65\u9AA4 / \u63D2\u4EF6)\:
DatabaseDialog.ErrorConnectionInfo.description=\u4E0D\u80FD\u83B7\u53D6\u8FDE\u63A5\u4FE1\u606F
SQLEditor.Error.CouldNotConnect.Message=\u4E0D\u80FD\u8FDE\u63A5\u5230\u6570\u636E\u5E93\uFF01\r\n\u8BF7\u68C0\u67E5\u8FDE\u63A5 [{0}] \u7684\u53C2\u6570\u8BBE\u7F6E\r\n{1}
EnterMappingDialog.AutoTargetSelection.Label=\u81EA\u52A8\u9009\u62E9\u76EE\u6807
DatabaseDialog.label.UseConnectionPool=\u4F7F\u7528\u8FDE\u63A5\u6C60
DatabaseDialog.label.SystemNumber=\u7CFB\u7EDF\u53F7
CheckResultDialog.Remarks.Label=\u5907\u6CE8\:
DatabaseDialog.column.PoolDescription=\u53C2\u6570\u63CF\u8FF0
DatabaseDialog.label.ServerHostname=\u670D\u52A1\u5668\u4E3B\u673A\u540D
DatabaseDialog.HelpText.title=\u9009\u9879\u5E2E\u52A9
DatabaseDialog.FeatureList.title=\u7279\u5F81\u5217\u8868
DatabaseDialog.report.ConnectionWithPartError=Error connecting to database [{0}] with partition id [{1}] \: {2}
DatabaseDialog.tooltip.PartitionId=\u4E3A\u8FDE\u63A5\u6570\u636E\u5E93\u8981\u8BBE\u7F6E\u7684\u989D\u5916\u53C2\u6570
DatabaseDialog.GenericTab.title=\u4E00\u822C
EnterMappingDialog.SourceFields.Label=\u6E90\u5B57\u6BB5
DatabaseDialog.label.ConnectionType=\u8FDE\u63A5\u7C7B\u578B
EnterOptionsDialog.ShowWelcomePage.Label=\u542F\u52A8\u65F6\u663E\u793A\u6B22\u8FCE\u9875\u9762?
DatabaseDialog.label.TablespaceForIndexes=\u7D22\u5F15\u8868\u7A7A\u95F4
SQLEditor.ErrorExecSQL.Message=\u6267\u884C\u4E0B\u9762 SQL \u8BED\u53E5\u65F6\u53D1\u751F\u9519\u8BEF\:\r\n\r\n\r\n{0}
EnterOptionsDialog.ReplaceDB.Tooltip=\u6253\u5F00/\u5BFC\u5165\u65F6\u662F\u5426\u66FF\u6362\u5F53\u524D\u7684\u6570\u636E\u5E93\u8FDE\u63A5,\u662F\u5426\u5F39\u51FA\u7A97\u53E3\u89C1\u4E0A\u4E2A\u9009\u9879.
DatabaseExplorerDialog.Views.Label=\u89C6\u56FE
EnterOptionsDialog.DefaultPreviewSize.Label=\u9884\u89C8\u5BF9\u8BDD\u6846\u7684\u7F3A\u7701\u884C\u6570\:
DatabaseExplorerDialog.NoRows.Title=\u6CA1\u6709\u6570\u636E\u884C
GetDatabaseInfoProgressDialog.Error.Message=\u4ECE\u6570\u636E\u5E93\u83B7\u53D6\u4FE1\u606F\u65F6\u53D1\u751F\u9519\u8BEF
DatabaseDialog.column.Hostname=\u4E3B\u673A\u540D\u79F0
DatabaseExplorerDialog.TargetDatabase.Message=\u9009\u62E9\u76EE\u6807\u6570\u636E\u5E93
DatabaseDialog.tooltip.UseClustering=\u9009\u4E2D\u53EF\u4EE5\u589E\u52A0\u96C6\u7FA4\u4FE1\u606F.
DatabaseDialog.FeatureList.title2="The list of features\:"
DatabaseExplorerDialog.Menu.PreviewN=\u9884\u89C8 [{0}] \u7684\u524D ... \u884C(&P)
EnterMappingDialog.Title=\u6620\u5C04\u5339\u914D
EnterOptionsDialog.VersionCheck.Label=\u8DF3\u8FC7\u66F4\u65B0\u68C0\u67E5?
CheckResultDialog.ShowSuccessful.Label=\u663E\u793A\u6210\u529F\u7ED3\u679C(&s)
DatabaseExplorerDialog.Menu.ShowLayout=\u67E5\u770B [{0}] \u7684\u8868\u7ED3\u6784
EnterOptionsDialog.GridSize.ToolTip=\u5C06\u56FE\u6807\u8D34\u8FD1\u7F51\u683C,\u53EF\u4EE5\u66F4\u5BB9\u6613\u5BF9\u9F50\u56FE\u6807
DatabaseExplorerDialog.Catalogs.Label=\u76EE\u5F55
SQLEditor.NoRows.Message=SQL \u8BED\u53E5\u6CA1\u6709\u8FD0\u884C\u7ED3\u679C\:\r\n\r\n{0}
DatabaseDialog.MySQLTab.title=MySQL
EnterMappingDialog.Button.Delete=\u5220\u9664(&D)
DatabaseDialog.HelpText.description=\u8FD9\u662F [{0}] \u7684\u5E2E\u52A9\u4FE1\u606F\:
DatabaseDialog.label.MaximumPoolSize=\u6700\u5927\u6C60\u5927\u5C0F
DatabaseExplorerDialog.UnexpectedProfilingError.Message=\u672A\u77E5\u9519\u8BEF
EnterOptionsDialog.NoteFont.Label=\u6CE8\u91CA\u5B57\u4F53\:
DatabaseDialog.label.MySQLStreamResults=\u4F7F\u7528\u7ED3\u679C\u6D41(cursor emulation)
EnterOptionsDialog.LineWidth.Label=\u5DE5\u4F5C\u533A\u5185\u7684\u7EBF\u5BBD\u5EA6\:
EnterOptionsDialog.GraphFont.Label=\u5DE5\u4F5C\u533A\u5185\u5B57\u4F53\:
DatabaseExplorerDialog.Menu.GenDDL=\u751F\u6210 DDL
EnterOptionsDialog.BackgroundColorGraph.Label=\u5DE5\u4F5C\u533A\u80CC\u666F\u989C\u8272\:
DatabaseDialog.column.PoolValue=\u503C
EnterSearchDialog.Note.Tooltip=\u641C\u7D22\u6CE8\u91CA
SQLEditor.NoRows.Title=\u6CA1\u6709\u7ED3\u679C
EnterOptionsDialog.OpenLastFileStartup.Label=\u542F\u52A8\u65F6\u6253\u5F00\u6700\u540E\u7F16\u8F91\u6587\u4EF6?
EnterOptionsDialog.TabColor.Label=\u6807\u7B7E\u989C\u8272\:
Dialog.Error.Header=\u9519\u8BEF
XulDatabaseDialog.Error.ResourcesNotFound=\u6CA1\u6709\u627E\u5230\u8D44\u6E90\u6587\u4EF6\: \u4E3B\u8D44\u6E90\u6587\u4EF6 locale {0}, \u5907\u9009\u8D44\u6E90\u6587\u4EF6 {1}
EnterOptionsDialog.BackgroundColor.Label=\u80CC\u666F\u989C\u8272\:
DatabaseDialog.column.DatabaseName=\u6570\u636E\u5E93\u540D\u79F0
SQLEditor.ClearWholeCache.Title=\u6E05\u9664\u6240\u6709\u7F13\u5B58
DatabaseDialog.report.DatabaseName=Database name \:
GetPreviewTableProgressDialog.Error.Title=\u9519\u8BEF\u83B7\u53D6\u4FE1\u606F
DatabaseDialog.DbTab.title=\u4E00\u822C
EnterOptionsDialog.ReplaceDBAsk.Label=\u5728\u6253\u5F00/\u5BFC\u5165\u65F6\u662F\u5426\u8BE2\u95EE\u66FF\u6362\u8FDE\u63A5
DatabaseDialog.ConnectionReport.title=\u8FDE\u63A5\u62A5\u544A
DatabaseDialog.label.ConnectionName=\u8FDE\u63A5\u540D\u79F0
DatabaseDialog.DatabaseConnectionTest.title=\u6570\u636E\u5E93\u8FDE\u63A5\u6D4B\u8BD5
DatabaseDialog.column.Port=\u7AEF\u53E3
DatabaseDialog.ErrorHelpText.description=\u6CA1\u6709\u76F8\u5E94\u7684\u5E2E\u52A9\uFF0C\u8BF7\u786E\u8BA4\u6240\u6709\u53C2\u6570\u90FD\u6B63\u786E\u3002
DatabaseExplorerDialog.NoRows.Message=\u8868\u91CC\u6CA1\u6709\u6570\u636E
DatabaseExplorerDialog.Menu.GenDDLOtherConn=\u4E3A\u5176\u5B83\u8FDE\u63A5\u751F\u6210 DDL
DatabaseDialog.report.ConnectionError=Error connecting to database [{0}] \:
SQLEditor.Error.CouldNotConnect.Title=\u4E0D\u80FD\u8FDE\u63A5
EnterSearchDialog.Note.Label=\u641C\u7D22\u6CE8\u91CA
EnterOptionsDialog.AskOnExit.Label=\u9000\u51FA\u65F6\u8BE2\u95EE?
DatabaseExplorerDialog.Synonyms.Label=\u540C\u4E49\u8BCD(Synonyms)
EnterOptionsDialog.CopyOrDistributeDialog.Tooltip=\u5F53\u4E00\u4E2A\u6B65\u9AA4\u5411\u591A\u4E2A\u6B65\u9AA4\u53D1\u9001\u6570\u636E\u65F6,\u662F\u5426\u8981\u5F39\u51FA\u4E00\u4E2A\u5BF9\u8BDD\u6846\u6765\u8BE2\u95EE\u7528\u6237\u662F\u4F7F\u7528\u5206\u53D1\u65B9\u5F0F\u8FD8\u662F\u590D\u5236\u65B9\u5F0F
DatabaseDialog.ErrorParameters2.title=\u9519\u8BEF\!
DatabaseExplorerDialog.Menu.Preview100=\u9884\u89C8 [{0}] \u7684\u524D 100 \u884C(&P)
DatabaseDialog.GenericTab.tooltip=\u901A\u7528\u6570\u636E\u5E93\u8FDE\u63A5
EnterMappingDialog.AutoSourceSelection.Label=\u81EA\u52A8\u9009\u62E9\u6E90
DatabaseDialog.ConnectionReport.description=\u8FDE\u63A5\u62A5\u544A
DatabaseExplorerDialog.PreviewTable.Message=\u8981\u9884\u89C8\u7684\u884C\u6570(0 \u4E3A\u6240\u6709\u884C)
DatabaseDialog.FeatureListError.title=\u9519\u8BEF\!
EnterOptionsDialog.FixedWidthFont.Label=\u56FA\u5B9A\u5BBD\u5EA6\u5B57\u4F53\:
EnterOptionsDialog.UseDatabaseCache.Label=\u4F7F\u7528\u6570\u636E\u5E93\u7F13\u5B58?
DatabaseDialog.ErrorParameters2.description=\u8BF7\u786E\u8BA4\u6240\u6709\u8F93\u5165\u7684\u53C2\u6570\u90FD\u6B63\u786E\r\n{0}
EnterOptionsDialog.Branding.Label=\u663E\u793A\u5546\u6807\u56FE\u7247
GetTableSizeProgressDialog.Error.Title=\u9519\u8BEF\u83B7\u53D6\u4FE1\u606F
EnterOptionsDialog.Title=Kettle \u9009\u9879
DatabaseDialog.label.AdvancedQuoteAllFields=\u6570\u636E\u5E93\u6807\u8BC6\u7B26\u653E\u5165\u5206\u9694\u7B26\u5185
DatabaseDialog.column.PartitionId=Partition ID
DatabaseDialog.ErrorParameters.description=\u8BF7\u786E\u8BA4\u6240\u6709\u8F93\u5165\u7684\u53C2\u6570\u90FD\u6B63\u786E\!
DatabaseDialog.report.Port=Port \:
EnterOptionsDialog.IconSize.Label=\u5DE5\u4F5C\u533A\u5185\u7684\u56FE\u6807\u5927\u5C0F\:
EnterMappingDialog.HideUsedTargets=\u9690\u85CF\u5DF2\u7ECF\u5339\u914D\u7684\u76EE\u6807\u5B57\u6BB5
EnterOptionsDialog.ClearCustomParameters.Confirmation=\u5220\u9664\u5B8C\u6BD5.
DatabaseExplorerDialog.Menu.ShowSize=\ [{0}] \u7684\u884C\u6570
CheckResultDialog.TextDialog.Title=\u67E5\u770B\u6D88\u606F
EnterOptionsDialog.LookAndFeel.Label=\u89C2\u611F
SQLEditor.LineNr.Label=\u884C\u53F7\: {0}
SQLEditor.ErrorExecSQL.Title=\u9519\u8BEF\u6267\u884C SQL
CheckResultDialog.Title=\u8F6C\u6362\u68C0\u67E5\u7ED3\u679C
EnterOptionsDialog.ToolTipsEnabled.Label=\u663E\u793A\u63D0\u793A?
DatabaseExplorerDialog.TargetDatabase.Title=\u76EE\u6807\u6570\u636E\u5E93
DatabaseDialog.column.SelectPoolParameter=Select the pool parameter to set
SQLEditor.ResultRows.Title=SQL \u8BED\u53E5 \#{0}
EnterOptionsDialog.MaxNrLogLinesSize.Label=\u65E5\u5FD7\u7A97\u53E3\u7684\u6700\u5927\u884C\u6570
DatabaseDialog.column.Value=\u503C
DatabaseDialog.PoolTab.title=\u6C60
DatabaseDialog.SQLTab.title=SQL
DatabaseDialog.FeatureListError.description=\u4E0D\u80FD\u83B7\u53D6\u7279\u5F81\u7ACB\u6807. \u786E\u8BA4\u53C2\u6570\u8F93\u5165\u6B63\u786E\!
DatabaseDialog.ErrorHelpText.title=\u9519\u8BEF\!
DatabaseDialog.IfxTab.title=Informix
EnterMappingDialog.ResultMappings.Label=\u6620\u5C04
SQLEditor.Position.Label=\u884C{0} \u5217{1}
DatabaseDialog.column.DbType=\u6570\u636E\u5E93\u7C7B\u578B
DatabaseExplorerDialog.NoConnectionsKnown.Message=\u5F53\u524D\u6CA1\u6709\u5176\u4ED6\u7684\u8FDE\u63A5\u53EF\u4EE5\u7528\u6765\u751F\u6210 DDL
DatabaseDialog.label.SapClient=SAP \u5BA2\u6237\u7AEF
CheckResultDialog.HideSuccessful.Label=\u9690\u85CF\u6210\u529F\u7ED3\u679C(&s)
DatabaseDialog.report.ConnectionOk=Connection to database [{0}] is OK.
DatabaseDialog.tooltip.Options=URL \u91CC\u7684\u989D\u5916\u53C2\u6570
DatabaseDialog.label.Statements=\u5EFA\u7ACB\u8FDE\u63A5\u540E\u7ACB\u523B\u8981\u6267\u884C\u7684\u8BED\u53E5 (\u4EE5 ; \u5206\u5272)
CheckResultDialog.WarningsErrors.Label=\u8B66\u544A\u548C\u9519\u8BEF\:
DatabaseExplorerDialog.Menu.ProfileTable=\u6570\u636E\u7EDF\u8BA1 ''{0}''
DatabaseDialog.label.Password=\u5BC6\u7801
DatabaseDialog.column.Password=\u5BC6\u7801
DatabaseDialog.label.Url=URL
DatabaseDialog.label.AdvancedForceIdentifiersLowerCase=\u5C06\u6240\u6709\u6807\u8BC6\u7B26\u5F3A\u5236\u8F6C\u6362\u4E3A\u5C0F\u5199
GetDatabaseInfoProgressDialog.Error.Title=\u9519\u8BEF\u83B7\u53D6\u4FE1\u606F
DatabaseExplorerDialog.Error.GenDDL=\u4E0D\u80FD\u751F\u6210 DDL \u8BED\u53E5
EnterOptionsDialog.ShadowSize.Label=\u5DE5\u4F5C\u533A\u5185\u7684\u9634\u5F71\u5927\u5C0F\:
XulDatabaseDialog.Error.Title=\u9519\u8BEF
DatabaseDialog.label.InformixServername=Informix \u670D\u52A1\u540D
EnterOptionsDialog.AutoSplitHops.Label=\u81EA\u52A8\u5206\u5272\u8282\u70B9\u8FDE\u63A5?
DatabaseExplorerDialog.TableSize.Title=\u884C\u6570
EnterOptionsDialog.Button.Reset=\u91CD\u7F6E
DatabaseDialog.tooltip.Hostname=\u4E3B\u673A\u540D
SQLEditor.Button.Execute=\u6267\u884C(&E)
EnterOptionsDialog.CanvasIndicateSlowSteps.Label=\u663E\u793A\u74F6\u9888\u8F6C\u6362\u6B65\u9AA4
DatabaseDialog.label.PortNumber=\u7AEF\u53E3\u53F7
EnterOptionsDialog.FailoverLocale.Label=\u7B2C\u4E8C\u8BED\u8A00\:
DatabaseDialog.report.ConnectionWithPartOk=Connection to database [{0}] with partition id [{1}] is OK.
DatabaseDialog.Shell.title=\u8FDE\u63A5\u4FE1\u606F
DatabaseDialog.label.InitialPoolSize=\u521D\u59CB\u6C60\u5927\u5C0F
DatabaseDialog.label.UseDoubleDecimalSeparator=\u4F7F\u7528\u4E24\u4E2A\u70B9(..) \u6765\u8FDE\u63A5\u6A21\u5F0F\u540D\u548C\u8868\u540D
DatabaseExplorerDialog.Menu.Truncate=\u6E05\u7A7A\u8868 [{0}]
SQLEditor.Editor.Label=\u4EE5 ";" \u5206\u5272\u7684 SQL \u8BED\u53E5
DatabaseExplorerDialog.Schemas.Label=\u6A21\u5F0F
SQLEditor.ClearWholeCache.Message=\u662F\u5426\u8981\u6E05\u9664\u6240\u6709\u8FDE\u63A5\u7684\u7F13\u5B58\uFF1F\r\n\u5982\u679C\u9009 "\u5426"\uFF0C \u53EA\u6E05\u9664\u8FDE\u63A5 ''{0}''\u7684\u7F13\u5B58
DatabaseDialog.MSSQLTab.title=SQL Server
GetTableSizeProgressDialog.Error.Message=\u4ECE\u6570\u636E\u5E93\u83B7\u53D6\u4FE1\u606F\u65F6\u53D1\u751F\u9519\u8BEF
EnterOptionsDialog.AutoSave.Label=\u81EA\u52A8\u4FDD\u5B58\u53D8\u66F4\uFF1F?
DatabaseExplorerDialog.Error.RetrieveLayout=\u4E0D\u80FD\u62BD\u53D6\u8868\u7ED3\u6784
EnterSearchDialog.Step.Label=\u641C\u7D22\u6B65\u9AA4
EnterOptionsDialog.Button.Reset.Tooltip=\u6062\u590D\u5230\u7F3A\u7701\u503C
DatabaseDialog.label.TablespaceForData=\u6570\u636E\u8868\u7A7A\u95F4
EnterOptionsDialog.Button.Edit=\u6539\u53D8
DatabaseDialog.label.PoolParameters=\u8FDE\u63A5\u6C60\u53C2\u6570
DatabaseExplorerDialog.NoConnectionsKnown.Title=\u6CA1\u6709\u6570\u636E\u5E93\u8FDE\u63A5
SQLEditor.WholeCacheCleared.Title=\u7F13\u5B58\u6E05\u9664
EnterOptionsDialog.CopyOrDistributeDialog.Label=\u663E\u793A"\u590D\u5236\u6216\u5206\u53D1"\u5BF9\u8BDD\u6846?
CheckResultDialog.Remark.Label=\u5907\u6CE8
SQLEditor.Result.Message=SQL \u8BED\u53E5\u8FD4\u56DE\u4E0B\u9762\u8FD0\u884C\u7ED3\u679C
EnterSearchDialog.Step.Tooltip=\u641C\u7D22\u6B65\u9AA4
EnterOptionsDialog.ClearCustomParameters.Tooltip=\u6E05\u9664\u6B65\u9AA4\u548C\u63D2\u4EF6\u5BF9\u8BDD\u6846\u91CC\u8BBE\u7F6E\u7684\u6240\u6709\u81EA\u5B9A\u4E49\u53C2\u6570
EnterOptionsDialog.ShowTipsStartup.Label=\u542F\u52A8\u65F6\u663E\u793A\u63D0\u793A?
GetDatabaseInfoProgressDialog.Error.GettingInfoTable=\u4ECE\u6570\u636E\u5E93\u4E2D\u83B7\u53D6\u4FE1\u606F\u65F6\u53D1\u751F\u9519\u8BEF\: {0}
EnterSearchDialog.DB.Tooltip=\u641C\u7D22\u6570\u636E\u5E93\u8FDE\u63A5
SQLEditor.Log.SQLExecError=\u6267\u884C\: {0} \u65F6\u53D1\u751F\u9519\u8BEF\r\n{1}
DatabaseDialog.report.Hostname=Hostname \:
DatabaseDialog.label.DatabaseName=\u6570\u636E\u5E93\u540D\u79F0
DatabaseDialog.column.Parameter=\u53C2\u6570
DatabaseDialog.AdvancedTab.title=\u9AD8\u7EA7
CheckResultDialog.TextDialog.Subtitle=\u6D88\u606F\:
SQLEditor.Title=\u7B80\u5355 SQL \u7F16\u8F91\u5668
GetQueryFieldsProgressDialog.Error.Message=\u4ECE\u6570\u636E\u5E93\u83B7\u53D6\u4FE1\u606F\u65F6\u53D1\u751F\u9519\u8BEF
DatabaseDialog.label.AccessMethod=\u8BBF\u95EE\u65B9\u6CD5
DatabaseDialog.Exception.IncorrectParameter=\u6570\u636E\u5E93\u53C2\u6570\u4E0D\u6B63\u786E, \u68C0\u67E5\u8BBE\u7F6E\:
EnterOptionsDialog.ReplaceDBAsk.Tooltip=\u5728\u6253\u5F00/\u5BFC\u5165\u4E00\u4E2A\u8F6C\u6362,\u5982\u679C\u8F6C\u6362\u91CC\u7684\u6570\u636E\u5E93\u8FDE\u63A5\u548C\u73B0\u6709\u7684\u6570\u636E\u5E93\u8FDE\u63A5\u91CD\u540D,\u662F\u5426\u5F39\u51FA\u7A97\u53E3\u63D0\u793A\u8986\u76D6.
DatabaseDialog.column.PoolDefault=\u9ED8\u8BA4\u503C
DatabaseDialog.button.FeatureList=\u7279\u5F81\u5217\u8868
SQLEditor.Log.StatsExecuted=\u6267\u884C\u4E86{0} \u4E2A SQL \u8BED\u53E5
EnterOptionsDialog.MaximumUndo.Label=\u6700\u591A\u6062\u590D\u6B21\u6570\:
EnterOptionsDialog.ClearCustomParameters.Title=\u95EE\u9898
DatabaseExplorer.Title=\u6570\u636E\u5E93\u6D4F\u89C8\u5668
DatabaseExplorer.Actions=\u52A8\u4F5C
DatabaseExplorer.Button.Cancel=&\u53D6\u6D88
DatabaseExplorer.Button.Ok=&\u786E\u5B9A
DatabaseExplorer.DDL=DDL
DatabaseExplorer.Preview100=\u9884\u89C8\u524D100\u884C
DatabaseExplorer.PreviewX=\u9884\u89C8\u524D x \u884C
DatabaseExplorer.RowCount=\u8BB0\u5F55\u6570
DatabaseExplorer.ViewSQL=\u751F\u6210 SQL
DatabaseExplorer.SelectConnection=\u9009\u62E9\u8FDE\u63A5
DatabaseExplorer.UseCurrent=\u4F7F\u7528\u5F53\u524D\u8FDE\u63A5
DatabaseExplorer.Truncate=\u88C1\u526A\u8868
DatabaseExplorer.ShowLayout=\u663E\u793A\u8868\u7ED3\u6784
DatabaseExplorer.DataProfile=\u6570\u636E\u6982\u8FF0

View File

@ -0,0 +1,44 @@
<?xml version="1.0"?>
<window id="preview-rows" title="Preview Rows"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional" height="600" width="800" onload="previewRows.init()"
xmlns:pen="http://www.pentaho.org/2008/xul" >
<dialog width="600" height="400" id="previewRowsDialog" title="Examine preview data" appicon="ui/images/CNC.svg"
buttons="accept"
ondialogaccept="previewRows.accept()">
<vbox flex="1">
<label id="rowCountLabel" value="" pen:binding="rowCount"/>
<tree flex="1" editable="false" id="table_data">
<treecols>
<treecol label="#" flex="1" editable="false"/>
<treecol label="col_a" flex="1" editable="false"/>
<treecol label="col_b" flex="1" editable="false"/>
</treecols>
<treechildren>
<treeitem>
<treerow>
<treecell label="1"/>
<treecell label="a"/>
<treecell label="b"/>
</treerow>
</treeitem>
<treeitem>
<treerow>
<treecell label="2"/>
<treecell label="c"/>
<treecell label="d"/>
</treerow>
</treeitem>
<treeitem>
<treerow>
<treecell label="3"/>
<treecell label="e"/>
<treecell label="f"/>
</treerow>
</treeitem>
</treechildren>
</tree>
</vbox>
</dialog>
</window>

View File

@ -0,0 +1,50 @@
<?xml version="1.0"?>
<window id="step_fields" title="Step Fields"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional" height="600" width="800" onload="stepFields.init()"
xmlns:pen="http://www.pentaho.org/2008/xul" >
<dialog width="800" height="600" id="stepFieldsDialog" title="Step fields and their origin" appicon="ui/images/CNC.svg"
buttons="accept,cancel"
buttonlabelcancel="Cancel"
buttonlabelaccept="Edit Origin Step"
ondialogaccept="stepFields.editOriginStep()"
ondialogcancel="stepFields.cancelDialog()">
<vbox flex="1">
<label id="stepNameLabel" value="Step name:" pen:binding="stepName"/>
<label id="fieldsLabel" value="Fields:"/>
<tree flex="1" editable="false" id="step_fields_data">
<treecols>
<treecol label="Fieldname" flex="1" editable="false" pen:binding="fieldName"/>
<treecol label="Type" flex="1" editable="false" pen:binding="type"/>
<treecol label="Length" flex="1" editable="false" pen:binding="length"/>
<treecol label="Precision" flex="1" editable="false" pen:binding="precision"/>
<treecol label="Step origin" flex="1" editable="false" pen:binding="origin"/>
<treecol label="Storage" flex="1" editable="false" pen:binding="storageType"/>
<treecol label="Mask" flex="1" editable="false" pen:binding="conversionMask"/>
<treecol label="Decimal" flex="1" editable="false" pen:binding="decimalSymbol"/>
<treecol label="Group" flex="1" editable="false" pen:binding="groupingSymbol"/>
<treecol label="Trim" flex="1" editable="false" pen:binding="trimType"/>
<treecol label="Comments" flex="1" editable="false" pen:binding="comments"/>
</treecols>
<treechildren>
<treeitem>
<treerow>
<treecell label="a"/>
<treecell label="b"/>
<treecell label="c"/>
<treecell label="d"/>
<treecell label="e"/>
<treecell label="f"/>
<treecell label="g"/>
<treecell label="h"/>
<treecell label="i"/>
<treecell label="j"/>
<treecell label="k"/>
</treerow>
</treeitem>
</treechildren>
</tree>
</vbox>
</dialog>
</window>

View File

@ -0,0 +1,94 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog.tags;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Composite;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.variables.VariableSpace;
import org.pentaho.di.ui.core.widget.ComboVar;
import org.pentaho.ui.xul.XulComponent;
import org.pentaho.ui.xul.XulDomContainer;
import org.pentaho.ui.xul.containers.XulTree;
import org.pentaho.ui.xul.dom.Element;
import org.pentaho.ui.xul.jface.tags.JfaceCMenuList;
/*
* a Menu List with variable substitution capability
*/
public class ExtMenuList extends JfaceCMenuList {
public ComboVar extCombo;
private VariableSpace variableSpace;
private XulComponent xulParent;
private int style = SWT.NONE;
public ExtMenuList( Element self, XulComponent parent, XulDomContainer container, String tagName ) {
super( self, parent, container, tagName );
xulParent = parent;
createNewExtMenuList( parent );
}
@Override
protected void setupCombobox() {
}
private void createNewExtMenuList( XulComponent parent ) {
xulParent = parent;
if ( ( xulParent != null ) && ( xulParent instanceof XulTree ) ) {
variableSpace = (DatabaseMeta) ( (XulTree) xulParent ).getData();
} else {
variableSpace = new DatabaseMeta();
style = SWT.BORDER;
}
extCombo = new ComboVar( variableSpace, (Composite) parent.getManagedObject(), style );
combobox = extCombo.getCComboWidget();
setManagedObject( extCombo );
combobox.addSelectionListener( new SelectionAdapter() {
public void widgetSelected( SelectionEvent e ) {
fireSelectedEvents();
}
} );
combobox.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent modifyEvent ) {
fireModifiedEvents();
}
} );
}
public void setVariableSpace( VariableSpace space ) {
variableSpace = space;
extCombo.setVariables( variableSpace );
}
}

View File

@ -0,0 +1,119 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.dialog.tags;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Text;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.variables.VariableSpace;
import org.pentaho.di.ui.core.widget.PasswordTextVar;
import org.pentaho.di.ui.core.widget.TextVar;
import org.pentaho.ui.xul.XulComponent;
import org.pentaho.ui.xul.XulDomContainer;
import org.pentaho.ui.xul.containers.XulTree;
import org.pentaho.ui.xul.dom.Element;
import org.pentaho.ui.xul.impl.AbstractXulComponent;
import org.pentaho.ui.xul.swt.tags.SwtTextbox;
import org.pentaho.ui.xul.util.TextType;
public class ExtTextbox extends SwtTextbox {
public TextVar extText;
private VariableSpace variableSpace;
private XulComponent xulParent;
private int style = SWT.NONE;
public ExtTextbox( Element self, XulComponent parent, XulDomContainer container, String tagName ) {
super( self, parent, container, tagName );
String typeAttribute = self.getAttributeValue( "type" );
if ( typeAttribute != null ) {
this.type = TextType.valueOf( typeAttribute.toUpperCase() );
}
createNewExtText( parent );
}
private void createNewExtText( XulComponent parent ) {
xulParent = parent;
if ( ( xulParent != null ) && ( xulParent instanceof XulTree ) ) {
variableSpace = (DatabaseMeta) ( (XulTree) xulParent ).getData();
} else {
variableSpace = new DatabaseMeta();
style = SWT.BORDER;
}
if ( type == TextType.PASSWORD ) {
extText = new PasswordTextVar( variableSpace, parentComposite, style );
} else {
extText = new TextVar( variableSpace, parentComposite, style );
}
textBox = extText.getTextWidget();
addKeyListener( textBox );
setManagedObject( extText );
}
@Override
public Text createNewText() {
// Don't do anything here. We'll create our own with createNewExtText().
return null;
}
@Override
public Object getTextControl() {
getManagedObject();
return extText.getTextWidget();
}
public Object getManagedObject() {
if ( textBox.isDisposed() ) {
int thisStyle = isMultiline() ? SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL : style;
extText = new TextVar( variableSpace, parentComposite, thisStyle );
setDisabled( isDisabled() );
setMaxlength( getMaxlength() );
setValue( getValue() );
setReadonly( isReadonly() );
setType( getType() );
textBox = extText.getTextWidget();
setManagedObject( extText );
layout();
}
return super.getManagedObject();
}
@Override
public void layout() {
( (AbstractXulComponent) xulParent ).layout();
}
public void setVariableSpace( VariableSpace space ) {
variableSpace = space;
extText.setVariables( variableSpace );
}
@Override
public void setType( TextType type ) {
return;
}
}

View File

@ -0,0 +1,139 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.wizard;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.exception.KettlePluginException;
import org.pentaho.di.core.plugins.DatabasePluginType;
import org.pentaho.di.core.plugins.PluginInterface;
import org.pentaho.di.core.plugins.PluginRegistry;
import org.pentaho.di.ui.core.PropsUI;
import org.pentaho.di.ui.core.gui.GUIResource;
/**
* Shows a wizard that creates a new database connection... (Code 'normalized' from Spoon)
*
* @author Matt, Jens
* @since 29-mar-2006
*
*/
public class CreateDatabaseWizard {
private boolean wizardFinished = false; // true when wizard finished
private List<WizardPage> additionalPages = new ArrayList<>();
/**
* Shows a wizard that creates a new database connection...
*
* @param shell
* @param props
* @param databases
* @return DatabaseMeta when finished or null when canceled
*/
public DatabaseMeta createAndRunDatabaseWizard( Shell shell, PropsUI props, List<DatabaseMeta> databases ) {
DatabaseMeta newDBInfo = new DatabaseMeta();
final CreateDatabaseWizardPage1 page1 = new CreateDatabaseWizardPage1( "1", props, newDBInfo, databases );
final CreateDatabaseWizardPageInformix pageifx =
new CreateDatabaseWizardPageInformix( "ifx", props, newDBInfo );
final CreateDatabaseWizardPageJDBC pagejdbc = new CreateDatabaseWizardPageJDBC( "jdbc", props, newDBInfo );
final CreateDatabaseWizardPageOCI pageoci = new CreateDatabaseWizardPageOCI( "oci", props, newDBInfo );
final CreateDatabaseWizardPageODBC pageodbc = new CreateDatabaseWizardPageODBC( "odbc", props, newDBInfo );
final CreateDatabaseWizardPageOracle pageoracle =
new CreateDatabaseWizardPageOracle( "oracle", props, newDBInfo );
final CreateDatabaseWizardPageGeneric pageGeneric =
new CreateDatabaseWizardPageGeneric( "generic", props, newDBInfo );
final CreateDatabaseWizardPage2 page2 = new CreateDatabaseWizardPage2( "2", props, newDBInfo );
for ( PluginInterface pluginInterface : PluginRegistry.getInstance().getPlugins( DatabasePluginType.class ) ) {
try {
Object plugin = PluginRegistry.getInstance().loadClass( pluginInterface );
if ( plugin instanceof WizardPageFactory ) {
WizardPageFactory factory = (WizardPageFactory) plugin;
additionalPages.add( factory.createWizardPage( props, newDBInfo ) );
}
} catch ( KettlePluginException kpe ) {
// Don't do anything
}
}
wizardFinished = false; // set to false for safety only
Wizard wizard = new Wizard() {
/**
* @see org.eclipse.jface.wizard.Wizard#performFinish()
*/
public boolean performFinish() {
wizardFinished = true;
return true;
}
/**
* @see org.eclipse.jface.wizard.Wizard#canFinish()
*/
public boolean canFinish() {
return page2.canFinish();
}
};
wizard.addPage( page1 );
wizard.addPage( pageoci );
wizard.addPage( pageodbc );
wizard.addPage( pagejdbc );
wizard.addPage( pageoracle );
wizard.addPage( pageifx );
wizard.addPage( pageGeneric );
for ( WizardPage page : additionalPages ) {
wizard.addPage( page );
}
wizard.addPage( page2 );
WizardDialog wd = new WizardDialog( shell, wizard );
WizardDialog.setDefaultImage( GUIResource.getInstance().getImageWizard() );
wd.setMinimumPageSize( 700, 400 );
wd.updateSize();
wd.open();
if ( !wizardFinished ) {
newDBInfo = null;
}
return newDBInfo;
}
}

View File

@ -0,0 +1,310 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.wizard;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Text;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.database.GenericDatabaseMeta;
import org.pentaho.di.core.plugins.DatabasePluginType;
import org.pentaho.di.core.plugins.PluginInterface;
import org.pentaho.di.core.plugins.PluginRegistry;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.PropsUI;
/**
*
* On page one we select the database connection name, the database type and the access type.
*
* @author Matt
* @since 04-apr-2005
*/
public class CreateDatabaseWizardPage1 extends WizardPage {
private static Class<?> PKG = CreateDatabaseWizard.class; // for i18n purposes, needed by Translator2!!
private Label wlName;
private Text wName;
private FormData fdlName, fdName;
private Label wlDBType;
private List wDBType;
private FormData fdlDBType, fdDBType;
private Label wlAccType;
private List wAccType;
private FormData fdlAccType, fdAccType;
private PropsUI props;
private DatabaseMeta databaseMeta;
private java.util.List<DatabaseMeta> databases;
private Map<String, String> wDBIDtoNameMap = new HashMap<String, String>();
public CreateDatabaseWizardPage1( String arg, PropsUI props, DatabaseMeta databaseMeta,
java.util.List<DatabaseMeta> databases ) {
super( arg );
this.props = props;
this.databaseMeta = databaseMeta;
this.databases = databases;
setTitle( BaseMessages.getString( PKG, "CreateDatabaseWizardPage1.DialogTitle" ) );
setDescription( BaseMessages.getString( PKG, "CreateDatabaseWizardPage1.DialogMessage" ) );
setPageComplete( false );
}
public void createControl( Composite parent ) {
int margin = Const.MARGIN;
int middle = props.getMiddlePct();
// create the composite to hold the widgets
Composite composite = new Composite( parent, SWT.NONE );
props.setLook( composite );
FormLayout compLayout = new FormLayout();
compLayout.marginHeight = Const.FORM_MARGIN;
compLayout.marginWidth = Const.FORM_MARGIN;
composite.setLayout( compLayout );
wlName = new Label( composite, SWT.RIGHT );
wlName.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPage1.DBName.Label" ) );
props.setLook( wlName );
fdlName = new FormData();
fdlName.left = new FormAttachment( 0, 0 );
fdlName.top = new FormAttachment( 0, 0 );
fdlName.right = new FormAttachment( middle, 0 );
wlName.setLayoutData( fdlName );
wName = new Text( composite, SWT.SINGLE | SWT.BORDER );
props.setLook( wName );
fdName = new FormData();
fdName.left = new FormAttachment( middle, margin );
fdName.right = new FormAttachment( 100, 0 );
wName.setLayoutData( fdName );
wName.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent e ) {
setPageComplete( false );
}
} );
wlDBType = new Label( composite, SWT.RIGHT );
wlDBType.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPage1.DBType.Label" ) );
props.setLook( wlDBType );
fdlDBType = new FormData();
fdlDBType.left = new FormAttachment( 0, 0 );
fdlDBType.top = new FormAttachment( wName, margin );
fdlDBType.right = new FormAttachment( middle, 0 );
wlDBType.setLayoutData( fdlDBType );
wDBType = new List( composite, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL );
props.setLook( wDBType );
PluginRegistry registry = PluginRegistry.getInstance();
java.util.List<PluginInterface> plugins = registry.getPlugins( DatabasePluginType.class );
Collections.sort( plugins, new Comparator<PluginInterface>() {
@Override
public int compare( PluginInterface o1, PluginInterface o2 ) {
return o1.getName().toUpperCase().compareTo( o2.getName().toUpperCase() );
}
} );
for ( PluginInterface plugin : plugins ) {
try {
wDBType.add( plugin.getName() );
wDBIDtoNameMap.put( plugin.getIds()[0], plugin.getName() );
} catch ( Exception e ) {
throw new RuntimeException( "Error creating class for: " + plugin, e );
}
}
// Select a default: the first
/*
* if (databaseMeta.getDatabaseType() <= 0) { wDBType.select(0); } else {
*/
int idx = wDBType.indexOf( wDBIDtoNameMap.get( databaseMeta.getPluginId() ) );
if ( idx >= 0 ) {
wDBType.select( idx );
} else {
wDBType.select( 0 );
}
// }
fdDBType = new FormData();
fdDBType.top = new FormAttachment( wName, margin );
fdDBType.left = new FormAttachment( middle, margin );
fdDBType.bottom = new FormAttachment( 80, 0 );
fdDBType.right = new FormAttachment( 100, 0 );
wDBType.setLayoutData( fdDBType );
wDBType.addSelectionListener( new SelectionAdapter() {
public void widgetSelected( SelectionEvent e ) {
setAccessTypes();
setPageComplete( false );
}
} );
wlAccType = new Label( composite, SWT.RIGHT );
wlAccType.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPage1.DBAccessType.Label" ) );
props.setLook( wlAccType );
fdlAccType = new FormData();
fdlAccType.left = new FormAttachment( 0, 0 );
fdlAccType.top = new FormAttachment( wDBType, margin );
fdlAccType.right = new FormAttachment( middle, 0 );
wlAccType.setLayoutData( fdlAccType );
wAccType = new List( composite, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL );
props.setLook( wAccType );
fdAccType = new FormData();
fdAccType.top = new FormAttachment( wDBType, margin );
fdAccType.left = new FormAttachment( middle, margin );
fdAccType.bottom = new FormAttachment( 100, 0 );
fdAccType.right = new FormAttachment( 100, 0 );
wAccType.setLayoutData( fdAccType );
wAccType.addSelectionListener( new SelectionAdapter() {
public void widgetSelected( SelectionEvent e ) {
setPageComplete( false );
}
} );
setAccessTypes();
// set the composite as the control for this page
setControl( composite );
}
public void setAccessTypes() {
if ( wDBType.getSelectionCount() < 1 ) {
return;
}
int[] acc = DatabaseMeta.getAccessTypeList( wDBType.getSelection()[0] );
wAccType.removeAll();
for ( int i = 0; i < acc.length; i++ ) {
wAccType.add( DatabaseMeta.getAccessTypeDescLong( acc[i] ) );
}
// If nothing is selected: select the first item (mostly the native driver)
if ( wAccType.getSelectionIndex() < 0 ) {
wAccType.select( 0 );
}
}
public boolean canFlipToNextPage() {
String name = wName.getText() != null ? wName.getText().length() > 0 ? wName.getText() : null : null;
String dbType = wDBType.getSelection().length == 1 ? wDBType.getSelection()[0] : null;
String acType = wAccType.getSelection().length == 1 ? wAccType.getSelection()[0] : null;
if ( name == null || dbType == null || acType == null ) {
setErrorMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPage1.ErrorMessage.InvalidInput" ) );
return false;
}
if ( name != null && DatabaseMeta.findDatabase( databases, name ) != null ) {
setErrorMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPage1.ErrorMessage.DBNameExists",
name.trim() ) );
return false;
} else {
getDatabaseInfo();
setErrorMessage( null );
setMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPage1.Message.Next" ) );
return true;
}
}
public DatabaseMeta getDatabaseInfo() {
if ( wName.getText() != null && wName.getText().length() > 0 ) {
databaseMeta.setName( wName.getText() );
databaseMeta.setDisplayName( wName.getText() );
}
String[] dbTypeSel = wDBType.getSelection();
if ( dbTypeSel != null && dbTypeSel.length == 1 ) {
databaseMeta.setDatabaseType( dbTypeSel[0] );
}
String[] accTypeSel = wAccType.getSelection();
if ( accTypeSel != null && accTypeSel.length == 1 ) {
databaseMeta.setAccessType( DatabaseMeta.getAccessType( accTypeSel[0] ) );
}
// Also, set the default port in case of JDBC:
databaseMeta.setDBPort( String.valueOf( databaseMeta.getDefaultDatabasePort() ) );
return databaseMeta;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.wizard.WizardPage#getNextPage()
*/
public IWizardPage getNextPage() {
IWizard wiz = getWizard();
IWizardPage nextPage;
switch ( databaseMeta.getAccessType() ) {
case DatabaseMeta.TYPE_ACCESS_OCI:
nextPage = wiz.getPage( "oci" ); // OCI
break;
case DatabaseMeta.TYPE_ACCESS_ODBC:
nextPage = wiz.getPage( "odbc" ); // ODBC
break;
case DatabaseMeta.TYPE_ACCESS_PLUGIN:
nextPage = wiz.getPage( databaseMeta.getPluginId() ); // e.g. SAPR3
break;
default: // Generic or Native
if ( databaseMeta.getDatabaseInterface() instanceof GenericDatabaseMeta ) { // Generic
nextPage = wiz.getPage( "generic" ); // generic
} else { // Native
nextPage = wiz.getPage( "jdbc" );
if ( nextPage != null ) {
// Set the port number...
( (CreateDatabaseWizardPageJDBC) nextPage ).setData();
}
}
break;
}
return nextPage;
}
public boolean canPerformFinish() {
return false;
}
}

View File

@ -0,0 +1,196 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.wizard;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.database.BaseDatabaseMeta;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.PropsUI;
import org.pentaho.di.ui.core.database.dialog.DatabaseDialog;
/**
*
* On page one we select the username and password. We also provide a test button.
*
* @author Matt
* @since 04-apr-2005
*/
public class CreateDatabaseWizardPage2 extends WizardPage {
private static Class<?> PKG = CreateDatabaseWizard.class; // for i18n purposes, needed by Translator2!!
private Label wlUsername;
private Text wUsername;
private FormData fdlUsername, fdUsername;
private Label wlPassword;
private Text wPassword;
private FormData fdlPassword, fdPassword;
private Button wTest;
private FormData fdTest;
private PropsUI props;
private DatabaseMeta databaseMeta;
public CreateDatabaseWizardPage2( String arg, PropsUI props, DatabaseMeta info ) {
super( arg );
this.props = props;
this.databaseMeta = info;
setTitle( BaseMessages.getString( PKG, "CreateDatabaseWizardPage2.DialogTitle" ) );
setDescription( BaseMessages.getString( PKG, "CreateDatabaseWizardPage2.DialogMessage" ) );
setPageComplete( false );
}
public void createControl( Composite parent ) {
int margin = Const.MARGIN;
int middle = props.getMiddlePct();
// create the composite to hold the widgets
Composite composite = new Composite( parent, SWT.NONE );
props.setLook( composite );
FormLayout compLayout = new FormLayout();
compLayout.marginHeight = Const.FORM_MARGIN;
compLayout.marginWidth = Const.FORM_MARGIN;
composite.setLayout( compLayout );
// USERNAME
wlUsername = new Label( composite, SWT.RIGHT );
wlUsername.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPage2.Username.Label" ) );
props.setLook( wlUsername );
fdlUsername = new FormData();
fdlUsername.top = new FormAttachment( 0, 0 );
fdlUsername.left = new FormAttachment( 0, 0 );
fdlUsername.right = new FormAttachment( middle, 0 );
wlUsername.setLayoutData( fdlUsername );
wUsername = new Text( composite, SWT.SINGLE | SWT.BORDER );
props.setLook( wUsername );
fdUsername = new FormData();
fdUsername.top = new FormAttachment( 0, 0 );
fdUsername.left = new FormAttachment( middle, margin );
fdUsername.right = new FormAttachment( 100, 0 );
wUsername.setLayoutData( fdUsername );
wUsername.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent arg0 ) {
setPageComplete( false );
}
} );
// PASSWORD
wlPassword = new Label( composite, SWT.RIGHT );
wlPassword.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPage2.Password.Label" ) );
props.setLook( wlPassword );
fdlPassword = new FormData();
fdlPassword.top = new FormAttachment( wUsername, margin );
fdlPassword.left = new FormAttachment( 0, 0 );
fdlPassword.right = new FormAttachment( middle, 0 );
wlPassword.setLayoutData( fdlPassword );
wPassword = new Text( composite, SWT.SINGLE | SWT.BORDER );
props.setLook( wPassword );
wPassword.setEchoChar( '*' );
fdPassword = new FormData();
fdPassword.top = new FormAttachment( wUsername, margin );
fdPassword.left = new FormAttachment( middle, margin );
fdPassword.right = new FormAttachment( 100, 0 );
wPassword.setLayoutData( fdPassword );
wPassword.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent arg0 ) {
setPageComplete( false );
}
} );
wTest = new Button( composite, SWT.PUSH );
wTest.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPage2.TestConnection.Button" ) );
fdTest = new FormData();
fdTest.top = new FormAttachment( wPassword, margin * 4 );
fdTest.left = new FormAttachment( 50, 0 );
wTest.setLayoutData( fdTest );
wTest.addSelectionListener( new SelectionAdapter() {
public void widgetSelected( SelectionEvent arg0 ) {
test();
}
} );
// set the composite as the control for this page
setControl( composite );
}
public void test() {
Shell shell = getWizard().getContainer().getShell();
DatabaseDialog.test( shell, databaseMeta );
}
public boolean canFlipToNextPage() {
return false;
}
public DatabaseMeta getDatabaseInfo() {
if ( wUsername.getText() != null && wUsername.getText().length() > 0 ) {
databaseMeta.setUsername( wUsername.getText() );
}
if ( wPassword.getText() != null && wPassword.getText().length() > 0 ) {
databaseMeta.setPassword( wPassword.getText() );
}
wTest.setEnabled( ( (BaseDatabaseMeta) databaseMeta.getDatabaseInterface() ).canTest() );
return databaseMeta;
}
public boolean canFinish() {
if ( !isCurrentPage() ) {
return false;
}
getDatabaseInfo();
String[] remarks = databaseMeta.checkParameters();
if ( remarks.length == 0 ) {
setErrorMessage( null );
setMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPage2.Message.Finish" ) );
return true;
} else {
setErrorMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPage2.ErrorMessage.InvalidInput" ) );
// setMessage("Select 'Finish' to create the database connection");
return false;
}
}
}

View File

@ -0,0 +1,178 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.wizard;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.database.GenericDatabaseMeta;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.PropsUI;
/**
*
* On page one we select the database connection SAP/R3 specific settings 1) The data tablespace 2) The index tablespace
*
* @author Jens Bleuel
* @since 22-mar-2006
*/
public class CreateDatabaseWizardPageGeneric extends WizardPage {
private static Class<?> PKG = CreateDatabaseWizard.class; // for i18n purposes, needed by Translator2!!
private Label wlURL;
private Text wURL;
private FormData fdlURL, fdURL;
private Label wlDriverClass;
private Text wDriverClass;
private FormData fdlDriverClass, fdDriverClass;
private PropsUI props;
private DatabaseMeta info;
public CreateDatabaseWizardPageGeneric( String arg, PropsUI props, DatabaseMeta info ) {
super( arg );
this.props = props;
this.info = info;
setTitle( BaseMessages.getString( PKG, "CreateDatabaseWizardPageGeneric.DialogTitle" ) );
setDescription( BaseMessages.getString( PKG, "CreateDatabaseWizardPageGeneric.DialogMessage" ) );
setPageComplete( false );
}
public void createControl( Composite parent ) {
int margin = Const.MARGIN;
int middle = props.getMiddlePct();
// create the composite to hold the widgets
Composite composite = new Composite( parent, SWT.NONE );
props.setLook( composite );
FormLayout compLayout = new FormLayout();
compLayout.marginHeight = Const.FORM_MARGIN;
compLayout.marginWidth = Const.FORM_MARGIN;
composite.setLayout( compLayout );
// URL
wlURL = new Label( composite, SWT.RIGHT );
wlURL.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPageGeneric.URL.Label" ) );
props.setLook( wlURL );
fdlURL = new FormData();
fdlURL.top = new FormAttachment( 0, 0 );
fdlURL.left = new FormAttachment( 0, 0 );
fdlURL.right = new FormAttachment( middle, 0 );
wlURL.setLayoutData( fdlURL );
wURL = new Text( composite, SWT.SINGLE | SWT.BORDER );
props.setLook( wURL );
fdURL = new FormData();
fdURL.top = new FormAttachment( 0, 0 );
fdURL.left = new FormAttachment( middle, margin );
fdURL.right = new FormAttachment( 100, 0 );
wURL.setLayoutData( fdURL );
wURL.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent arg0 ) {
setPageComplete( false );
}
} );
// DRIVER CLASS
wlDriverClass = new Label( composite, SWT.RIGHT );
wlDriverClass.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPageGeneric.DriverClass.Label" ) );
props.setLook( wlDriverClass );
fdlDriverClass = new FormData();
fdlDriverClass.top = new FormAttachment( wURL, margin );
fdlDriverClass.left = new FormAttachment( 0, 0 );
fdlDriverClass.right = new FormAttachment( middle, 0 );
wlDriverClass.setLayoutData( fdlDriverClass );
wDriverClass = new Text( composite, SWT.SINGLE | SWT.BORDER );
props.setLook( wDriverClass );
fdDriverClass = new FormData();
fdDriverClass.top = new FormAttachment( wURL, margin );
fdDriverClass.left = new FormAttachment( middle, margin );
fdDriverClass.right = new FormAttachment( 100, 0 );
wDriverClass.setLayoutData( fdDriverClass );
wDriverClass.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent arg0 ) {
setPageComplete( false );
}
} );
// set the composite as the control for this page
setControl( composite );
}
public boolean canFlipToNextPage() {
String url = wURL.getText() != null ? wURL.getText().length() > 0 ? wURL.getText() : null : null;
String driverClass =
wDriverClass.getText() != null
? wDriverClass.getText().length() > 0 ? wDriverClass.getText() : null : null;
if ( url == null || driverClass == null ) {
setErrorMessage( BaseMessages.getString(
PKG, "CreateDatabaseWizardPageGeneric.ErrorMessage.URLAndDriverClassRequired" ) );
return false;
} else {
getDatabaseInfo();
setErrorMessage( null );
setMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPageGeneric.Message.Next" ) );
return true;
}
}
public DatabaseMeta getDatabaseInfo() {
if ( wURL.getText() != null && wURL.getText().length() > 0 ) {
info.getAttributes().put( GenericDatabaseMeta.ATRRIBUTE_CUSTOM_URL, wURL.getText() );
}
if ( wDriverClass.getText() != null && wDriverClass.getText().length() > 0 ) {
info.getAttributes().put( GenericDatabaseMeta.ATRRIBUTE_CUSTOM_DRIVER_CLASS, wDriverClass.getText() );
}
return info;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.wizard.WizardPage#getNextPage()
*/
public IWizardPage getNextPage() {
IWizard wiz = getWizard();
return wiz.getPage( "2" );
}
}

View File

@ -0,0 +1,142 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.wizard;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.PropsUI;
/**
*
* On page one we set the Informix servername
*
* @author Matt
* @since 04-apr-2005
*/
public class CreateDatabaseWizardPageInformix extends WizardPage {
private static Class<?> PKG = CreateDatabaseWizard.class; // for i18n purposes, needed by Translator2!!
private Label wlServername;
private Text wServername;
private FormData fdlServername, fdServername;
private PropsUI props;
private DatabaseMeta info;
public CreateDatabaseWizardPageInformix( String arg, PropsUI props, DatabaseMeta info ) {
super( arg );
this.props = props;
this.info = info;
setTitle( BaseMessages.getString( PKG, "CreateDatabaseWizardPageInformix.DialogTitle" ) );
setDescription( BaseMessages.getString( PKG, "CreateDatabaseWizardPageInformix.DialogMessage" ) );
setPageComplete( false );
}
public void createControl( Composite parent ) {
int margin = Const.MARGIN;
int middle = props.getMiddlePct();
// create the composite to hold the widgets
Composite composite = new Composite( parent, SWT.NONE );
props.setLook( composite );
FormLayout compLayout = new FormLayout();
compLayout.marginHeight = Const.FORM_MARGIN;
compLayout.marginWidth = Const.FORM_MARGIN;
composite.setLayout( compLayout );
wlServername = new Label( composite, SWT.RIGHT );
wlServername.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPageInformix.Servername.Label" ) );
props.setLook( wlServername );
fdlServername = new FormData();
fdlServername.top = new FormAttachment( 0, 0 );
fdlServername.left = new FormAttachment( 0, 0 );
fdlServername.right = new FormAttachment( middle, 0 );
wlServername.setLayoutData( fdlServername );
wServername = new Text( composite, SWT.SINGLE | SWT.BORDER );
props.setLook( wServername );
fdServername = new FormData();
fdServername.top = new FormAttachment( 0, 0 );
fdServername.left = new FormAttachment( middle, margin );
fdServername.right = new FormAttachment( 100, 0 );
wServername.setLayoutData( fdServername );
wServername.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent arg0 ) {
setPageComplete( false );
}
} );
// set the composite as the control for this page
setControl( composite );
}
public boolean canFlipToNextPage() {
String name =
wServername.getText() != null ? wServername.getText().length() > 0 ? wServername.getText() : null : null;
if ( name == null ) {
setErrorMessage( BaseMessages.getString(
PKG, "CreateDatabaseWizardPageInformix.ErrorMessage.ServernameRequired" ) );
return false;
} else {
getDatabaseInfo();
setErrorMessage( null );
setMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPageInformix.Message.Next" ) );
return true;
}
}
public DatabaseMeta getDatabaseInfo() {
if ( wServername.getText() != null && wServername.getText().length() > 0 ) {
info.setServername( wServername.getText() );
}
return info;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.wizard.WizardPage#getNextPage()
*/
public IWizardPage getNextPage() {
IWizard wiz = getWizard();
return wiz.getPage( "2" );
}
}

View File

@ -0,0 +1,241 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.wizard;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.database.InformixDatabaseMeta;
import org.pentaho.di.core.database.OracleDatabaseMeta;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.PropsUI;
/**
*
* On page one we select the database connection JDBC settings 1) The servername 2) The port 3) The database name
*
* @author Matt
* @since 04-apr-2005
*/
public class CreateDatabaseWizardPageJDBC extends WizardPage {
private static final String DATA_SERVICES_PLUGIN_ID = "KettleThin";
private static final String DEFAULT_WEB_APPLICATION_NAME = "pentaho";
private static Class<?> PKG = CreateDatabaseWizard.class; // for i18n purposes, needed by Translator2!!
private Label wlHostname;
private Text wHostname;
private FormData fdlHostname, fdHostname;
private Label wlPort;
private Text wPort;
private FormData fdlPort, fdPort;
private Label wlDBName;
private Text wDBName;
private FormData fdlDBName, fdDBName;
private PropsUI props;
private DatabaseMeta databaseMeta;
private boolean defaultWebAppNameSet = false;
public CreateDatabaseWizardPageJDBC( String arg, PropsUI props, DatabaseMeta info ) {
super( arg );
this.props = props;
this.databaseMeta = info;
setTitle( BaseMessages.getString( PKG, "CreateDatabaseWizardPageJDBC.DialogTitle" ) );
setDescription( BaseMessages.getString( PKG, "CreateDatabaseWizardPageJDBC.DialogMessage" ) );
setPageComplete( false );
}
public void createControl( Composite parent ) {
int margin = Const.MARGIN;
int middle = props.getMiddlePct();
// create the composite to hold the widgets
Composite composite = new Composite( parent, SWT.NONE );
props.setLook( composite );
FormLayout compLayout = new FormLayout();
compLayout.marginHeight = Const.FORM_MARGIN;
compLayout.marginWidth = Const.FORM_MARGIN;
composite.setLayout( compLayout );
// HOSTNAME
wlHostname = new Label( composite, SWT.RIGHT );
wlHostname.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPageJDBC.Hostname.Label" ) );
props.setLook( wlHostname );
fdlHostname = new FormData();
fdlHostname.top = new FormAttachment( 0, 0 );
fdlHostname.left = new FormAttachment( 0, 0 );
fdlHostname.right = new FormAttachment( middle, 0 );
wlHostname.setLayoutData( fdlHostname );
wHostname = new Text( composite, SWT.SINGLE | SWT.BORDER );
props.setLook( wHostname );
fdHostname = new FormData();
fdHostname.top = new FormAttachment( 0, 0 );
fdHostname.left = new FormAttachment( middle, margin );
fdHostname.right = new FormAttachment( 100, 0 );
wHostname.setLayoutData( fdHostname );
wHostname.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent arg0 ) {
setPageComplete( false );
}
} );
// PORT
wlPort = new Label( composite, SWT.RIGHT );
wlPort.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPageJDBC.Port.Label" ) );
props.setLook( wlPort );
fdlPort = new FormData();
fdlPort.top = new FormAttachment( wHostname, margin );
fdlPort.left = new FormAttachment( 0, 0 );
fdlPort.right = new FormAttachment( middle, 0 );
wlPort.setLayoutData( fdlPort );
wPort = new Text( composite, SWT.SINGLE | SWT.BORDER );
props.setLook( wPort );
wPort.setText( databaseMeta.getDatabasePortNumberString() );
fdPort = new FormData();
fdPort.top = new FormAttachment( wHostname, margin );
fdPort.left = new FormAttachment( middle, margin );
fdPort.right = new FormAttachment( 100, 0 );
wPort.setLayoutData( fdPort );
wPort.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent arg0 ) {
setPageComplete( false );
}
} );
// DATABASE NAME
wlDBName = new Label( composite, SWT.RIGHT );
props.setLook( wlDBName );
fdlDBName = new FormData();
fdlDBName.top = new FormAttachment( wPort, margin );
fdlDBName.left = new FormAttachment( 0, 0 );
fdlDBName.right = new FormAttachment( middle, 0 );
wlDBName.setLayoutData( fdlDBName );
wDBName = new Text( composite, SWT.SINGLE | SWT.BORDER );
props.setLook( wDBName );
fdDBName = new FormData();
fdDBName.top = new FormAttachment( wPort, margin );
fdDBName.left = new FormAttachment( middle, margin );
fdDBName.right = new FormAttachment( 100, 0 );
wDBName.setLayoutData( fdDBName );
wDBName.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent arg0 ) {
setPageComplete( false );
}
} );
// set the composite as the control for this page
setControl( composite );
}
public void setData() {
wHostname.setText( Const.NVL( databaseMeta.getHostname(), "" ) );
wPort.setText( Const.NVL( databaseMeta.getDatabasePortNumberString(), "" ) );
if ( !defaultWebAppNameSet && isDataServiceConnection() ) {
wDBName.setText( DEFAULT_WEB_APPLICATION_NAME );
defaultWebAppNameSet = true;
} else {
wDBName.setText( Const.NVL( databaseMeta.getDatabaseName(), "" ) );
}
if ( isDataServiceConnection() ) {
wlDBName.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPageJDBC.WebAppName.Label" ) );
} else {
wlDBName.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPageJDBC.DBName.Label" ) );
}
}
public boolean canFlipToNextPage() {
String server = wHostname.getText().length() > 0 ? wHostname.getText() : null;
String port = wPort.getText().length() > 0 ? wPort.getText() : null;
String dbname = wDBName.getText().length() > 0 ? wDBName.getText() : null;
if ( ( server == null || port == null || dbname == null ) && !isDataServiceConnection() ) {
setErrorMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPageJDBC.ErrorMessage.InvalidInput" ) );
return false;
}
if ( ( server == null || port == null ) && isDataServiceConnection() ) {
setErrorMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPageJDBC.PDSHostPort.ErrorMessage" ) );
return false;
}
getDatabaseInfo();
setErrorMessage( null );
setMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPageJDBC.Message.Input" ) );
return true;
}
public DatabaseMeta getDatabaseInfo() {
databaseMeta.setHostname( wHostname.getText() );
databaseMeta.setDBPort( wPort.getText() );
databaseMeta.setDBName( wDBName.getText() );
return databaseMeta;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.wizard.WizardPage#getNextPage()
*/
public IWizardPage getNextPage() {
IWizard wiz = getWizard();
IWizardPage nextPage;
if ( databaseMeta.getDatabaseInterface() instanceof OracleDatabaseMeta ) {
nextPage = wiz.getPage( "oracle" ); // Oracle
} else if ( databaseMeta.getDatabaseInterface() instanceof InformixDatabaseMeta ) {
nextPage = wiz.getPage( "ifx" ); // Informix
} else {
nextPage = wiz.getPage( "2" ); // page 2
}
return nextPage;
}
private boolean isDataServiceConnection() {
return DATA_SERVICES_PLUGIN_ID.equals( databaseMeta.getPluginId() );
}
}

View File

@ -0,0 +1,139 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.wizard;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.PropsUI;
/**
*
* On page one we specify the OCI TNS connection...
*
* @author Matt
* @since 04-apr-2005
*/
public class CreateDatabaseWizardPageOCI extends WizardPage {
private static Class<?> PKG = CreateDatabaseWizard.class; // for i18n purposes, needed by Translator2!!
private Label wlTNS;
private Text wTNS;
private FormData fdlTNS, fdTNS;
private PropsUI props;
private DatabaseMeta info;
public CreateDatabaseWizardPageOCI( String arg, PropsUI props, DatabaseMeta info ) {
super( arg );
this.props = props;
this.info = info;
setTitle( BaseMessages.getString( PKG, "CreateDatabaseWizardPageOCI.DialogTitle" ) );
setDescription( BaseMessages.getString( PKG, "CreateDatabaseWizardPageOCI.DialogMessage" ) );
setPageComplete( false );
}
public void createControl( Composite parent ) {
int margin = Const.MARGIN;
int middle = props.getMiddlePct();
// create the composite to hold the widgets
Composite composite = new Composite( parent, SWT.NONE );
props.setLook( composite );
FormLayout compLayout = new FormLayout();
compLayout.marginHeight = Const.FORM_MARGIN;
compLayout.marginWidth = Const.FORM_MARGIN;
composite.setLayout( compLayout );
wlTNS = new Label( composite, SWT.RIGHT );
wlTNS.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPageOCI.TNS.Label" ) );
props.setLook( wlTNS );
fdlTNS = new FormData();
fdlTNS.left = new FormAttachment( 0, 0 );
fdlTNS.right = new FormAttachment( middle, 0 );
wlTNS.setLayoutData( fdlTNS );
wTNS = new Text( composite, SWT.SINGLE | SWT.BORDER );
props.setLook( wTNS );
fdTNS = new FormData();
fdTNS.left = new FormAttachment( middle, margin );
fdTNS.right = new FormAttachment( 100, 0 );
wTNS.setLayoutData( fdTNS );
wTNS.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent arg0 ) {
setPageComplete( false );
}
} );
// set the composite as the control for this page
setControl( composite );
}
public boolean canFlipToNextPage() {
String name = wTNS.getText() != null ? wTNS.getText().length() > 0 ? wTNS.getText() : null : null;
if ( name == null ) {
setErrorMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPageOCI.ErrorMessage.NoTNSName" ) );
return false;
} else {
getDatabaseInfo();
setErrorMessage( null );
setMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPageOCI.Message.Next" ) );
return true;
}
}
public DatabaseMeta getDatabaseInfo() {
if ( wTNS.getText() != null && wTNS.getText().length() > 0 ) {
info.setDBName( wTNS.getText() );
}
info.setDBPort( "" );
info.setServername( null );
return info;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.wizard.WizardPage#getNextPage()
*/
public IWizardPage getNextPage() {
IWizard wiz = getWizard();
return wiz.getPage( "2" );
}
}

View File

@ -0,0 +1,140 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.wizard;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.PropsUI;
/**
*
* On page one we select the ODBC DSN Name...
*
* @author Matt
* @since 04-apr-2005
*/
public class CreateDatabaseWizardPageODBC extends WizardPage {
private static Class<?> PKG = CreateDatabaseWizard.class; // for i18n purposes, needed by Translator2!!
private Label wlDSN;
private Text wDSN;
private FormData fdlDSN, fdDSN;
private PropsUI props;
private DatabaseMeta info;
public CreateDatabaseWizardPageODBC( String arg, PropsUI props, DatabaseMeta info ) {
super( arg );
this.props = props;
this.info = info;
setTitle( BaseMessages.getString( PKG, "CreateDatabaseWizardPageODBC.DialogTitle" ) );
setDescription( BaseMessages.getString( PKG, "CreateDatabaseWizardPageODBC.DialogMessage" ) );
setPageComplete( false );
}
public void createControl( Composite parent ) {
int margin = Const.MARGIN;
int middle = props.getMiddlePct();
// create the composite to hold the widgets
Composite composite = new Composite( parent, SWT.NONE );
props.setLook( composite );
FormLayout compLayout = new FormLayout();
compLayout.marginHeight = Const.FORM_MARGIN;
compLayout.marginWidth = Const.FORM_MARGIN;
composite.setLayout( compLayout );
wlDSN = new Label( composite, SWT.RIGHT );
wlDSN.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPageODBC.DSN.Label" ) );
props.setLook( wlDSN );
fdlDSN = new FormData();
fdlDSN.left = new FormAttachment( 0, 0 );
fdlDSN.right = new FormAttachment( middle, 0 );
wlDSN.setLayoutData( fdlDSN );
wDSN = new Text( composite, SWT.SINGLE | SWT.BORDER );
props.setLook( wDSN );
fdDSN = new FormData();
fdDSN.left = new FormAttachment( middle, margin );
fdDSN.right = new FormAttachment( 100, 0 );
wDSN.setLayoutData( fdDSN );
wDSN.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent arg0 ) {
setPageComplete( false );
}
} );
// set the composite as the control for this page
setControl( composite );
}
public boolean canFlipToNextPage() {
String name = wDSN.getText() != null ? wDSN.getText().length() > 0 ? wDSN.getText() : null : null;
if ( name == null ) {
setErrorMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPageODBC.ErrorMessage.DSNRequired" ) );
return false;
} else {
getDatabaseInfo();
setErrorMessage( null );
setMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPageODBC.Message.Finish" ) );
return true;
}
}
public DatabaseMeta getDatabaseInfo() {
if ( wDSN.getText() != null && wDSN.getText().length() > 0 ) {
info.setDBName( wDSN.getText() );
}
info.setDBPort( "" );
info.setServername( null );
return info;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.wizard.WizardPage#getNextPage()
*/
public IWizardPage getNextPage() {
IWizard wiz = getWizard();
return wiz.getPage( "2" );
}
}

View File

@ -0,0 +1,161 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.wizard;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.ui.core.PropsUI;
/**
*
* On page one we select the database connection Oracle specific settings 1) The data tablespace 2) The index tablespace
*
* @author Matt
* @since 04-apr-2005
*/
public class CreateDatabaseWizardPageOracle extends WizardPage {
private static Class<?> PKG = CreateDatabaseWizard.class; // for i18n purposes, needed by Translator2!!
private Label wlDataTS;
private Text wDataTS;
private FormData fdlDataTS, fdDataTS;
private Label wlIndexTS;
private Text wIndexTS;
private FormData fdlIndexTS, fdIndexTS;
private PropsUI props;
private DatabaseMeta info;
public CreateDatabaseWizardPageOracle( String arg, PropsUI props, DatabaseMeta info ) {
super( arg );
this.props = props;
this.info = info;
setTitle( BaseMessages.getString( PKG, "CreateDatabaseWizardPageOracle.DialogTitle" ) );
setDescription( BaseMessages.getString( PKG, "CreateDatabaseWizardPageOracle.DialogMessage" ) );
setPageComplete( false );
}
public void createControl( Composite parent ) {
int margin = Const.MARGIN;
int middle = props.getMiddlePct();
// create the composite to hold the widgets
Composite composite = new Composite( parent, SWT.NONE );
props.setLook( composite );
FormLayout compLayout = new FormLayout();
compLayout.marginHeight = Const.FORM_MARGIN;
compLayout.marginWidth = Const.FORM_MARGIN;
composite.setLayout( compLayout );
wlDataTS = new Label( composite, SWT.RIGHT );
wlDataTS.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPageOracle.DataTablespace.Label" ) );
props.setLook( wlDataTS );
fdlDataTS = new FormData();
fdlDataTS.top = new FormAttachment( 0, 0 );
fdlDataTS.left = new FormAttachment( 0, 0 );
fdlDataTS.right = new FormAttachment( middle, 0 );
wlDataTS.setLayoutData( fdlDataTS );
wDataTS = new Text( composite, SWT.SINGLE | SWT.BORDER );
props.setLook( wDataTS );
fdDataTS = new FormData();
fdDataTS.top = new FormAttachment( 0, 0 );
fdDataTS.left = new FormAttachment( middle, margin );
fdDataTS.right = new FormAttachment( 100, 0 );
wDataTS.setLayoutData( fdDataTS );
wDataTS.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent arg0 ) {
setPageComplete( false );
}
} );
wlIndexTS = new Label( composite, SWT.RIGHT );
wlIndexTS.setText( BaseMessages.getString( PKG, "CreateDatabaseWizardPageOracle.IndexTableSpace.Label" ) );
props.setLook( wlIndexTS );
fdlIndexTS = new FormData();
fdlIndexTS.top = new FormAttachment( wDataTS, margin );
fdlIndexTS.left = new FormAttachment( 0, 0 );
fdlIndexTS.right = new FormAttachment( middle, 0 );
wlIndexTS.setLayoutData( fdlIndexTS );
wIndexTS = new Text( composite, SWT.SINGLE | SWT.BORDER );
props.setLook( wIndexTS );
fdIndexTS = new FormData();
fdIndexTS.top = new FormAttachment( wDataTS, margin );
fdIndexTS.left = new FormAttachment( middle, margin );
fdIndexTS.right = new FormAttachment( 100, 0 );
wIndexTS.setLayoutData( fdIndexTS );
wIndexTS.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent arg0 ) {
setPageComplete( false );
}
} );
// set the composite as the control for this page
setControl( composite );
}
public boolean canFlipToNextPage() {
getDatabaseInfo();
setErrorMessage( null );
setMessage( BaseMessages.getString( PKG, "CreateDatabaseWizardPageOracle.Message.Next" ) );
return true;
}
public DatabaseMeta getDatabaseInfo() {
if ( wDataTS.getText() != null && wDataTS.getText().length() > 0 ) {
info.setDataTablespace( wDataTS.getText() );
}
if ( wIndexTS.getText() != null && wIndexTS.getText().length() > 0 ) {
info.setIndexTablespace( wIndexTS.getText() );
}
return info;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.wizard.WizardPage#getNextPage()
*/
public IWizardPage getNextPage() {
IWizard wiz = getWizard();
return wiz.getPage( "2" );
}
}

View File

@ -0,0 +1,34 @@
/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Hitachi Vantara : http://www.pentaho.com
*
*******************************************************************************
*
* 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.pentaho.di.ui.core.database.wizard;
import org.eclipse.jface.wizard.WizardPage;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.ui.core.PropsUI;
/**
* Created by bmorrise on 3/9/16.
*/
public interface WizardPageFactory {
WizardPage createWizardPage( PropsUI props, DatabaseMeta info );
}

View File

@ -0,0 +1,112 @@
###############################################################################################################
#
# CreateDatabaseWizardPageOCI
#
###############################################################################################################
CreateDatabaseWizardPageOCI.DialogTitle=Legen Sie die Oracle TNS Datenbank fest
CreateDatabaseWizardPageOCI.DialogMessage=Legen Sie die TNS Datenbank fest, welche in Ihrem Oracle Client definiert ist.
CreateDatabaseWizardPageOCI.TNS.Label=Name der Oracle TNS Datenbank
CreateDatabaseWizardPageOCI.ErrorMessage.NoTNSName=Geben Sie den Namen der Oracle TNSNAMES Datenbank ein
CreateDatabaseWizardPageOCI.Message.Next=Wählen Sie ''Weiter'' um fortzufahren
###############################################################################################################
#
# CreateDatabaseWizardPageGeneric
#
###############################################################################################################
CreateDatabaseWizardPageGeneric.DialogTitle=Legen Sie die Einstellungen für den generischen Treiber fest
CreateDatabaseWizardPageGeneric.DialogMessage=Legen Sie die URL und Treiberklasse fest.
CreateDatabaseWizardPageGeneric.URL.Label=URL
CreateDatabaseWizardPageGeneric.DriverClass.Label=Treiberklasse
CreateDatabaseWizardPageGeneric.ErrorMessage.URLAndDriverClassRequired=Legen Sie die URL und Treiberklasse fest.
CreateDatabaseWizardPageGeneric.Message.Next=Wählen Sie ''Weiter'' um fortzufahren
###############################################################################################################
#
# CreateDatabaseWizardPageInformix
#
###############################################################################################################
CreateDatabaseWizardPageInformix.DialogTitle=Legen Sie den Informix Servername fest.
CreateDatabaseWizardPageInformix.DialogMessage=Legen Sie den Informix Servername fest.
CreateDatabaseWizardPageInformix.Servername.Label=Name des Informix Servers
CreateDatabaseWizardPageInformix.ErrorMessage.ServernameRequired=Geben Sie den Namen des Informix Servers ein
CreateDatabaseWizardPageInformix.Message.Next=Wählen Sie ''Weiter'' um fortzufahren
###############################################################################################################
#
# CreateDatabaseWizardPage1
#
###############################################################################################################
CreateDatabaseWizardPage1.DialogTitle=Wählen Sie den Datenbanknamen und -typ.
CreateDatabaseWizardPage1.DialogMessage=Wählen Sie den Datenbankverbindungsnamen, Datenbanktyp und Zugangstyp aus.
CreateDatabaseWizardPage1.DBName.Label=Name der Datenbankverbindung
CreateDatabaseWizardPage1.DBType.Label=Typ der zu verbindenden Datenbank
CreateDatabaseWizardPage1.DBAccessType.Label=Typ des zu benutzenden Datenbankzugangs
CreateDatabaseWizardPage1.ErrorMessage.InvalidInput=Geben Sie den Verbindungsnamen ein, den Datenbanktyp und die Zugangsmethode.
CreateDatabaseWizardPage1.ErrorMessage.DBNameExists=Die Datenbank ''{0}'' existiert bereits, bitte wählen Sie einen anderen Namen.
CreateDatabaseWizardPage1.Message.Next=Wählen Sie ''Weiter'' um fortzufahren
###############################################################################################################
#
# CreateDatabaseWizardPageODBC
#
###############################################################################################################
CreateDatabaseWizardPageODBC.DialogTitle=Legen Sie die ODBC DSN Datenquelle fest
CreateDatabaseWizardPageODBC.DialogMessage=Geben Sie den Namen der ODBC DSN Datenquelle, wie in der Benutzer- oder System-DSN Datenquelle definiert, an.
CreateDatabaseWizardPageODBC.DSN.Label=Name der ODBC DSN Datenquelle
CreateDatabaseWizardPageODBC.ErrorMessage.DSNRequired=Geben Sie den Namen der ODBC DSN Datenquelle ein
CreateDatabaseWizardPageODBC.Message.Finish=Wählen ''Ende'' um die Datenbankverbindung zu erstellen
###############################################################################################################
#
# CreateDatabaseWizardPageOracle
#
###############################################################################################################
CreateDatabaseWizardPageOracle.DialogTitle=Legen Sie Die die Oracle spezifischen Einstellungen fest
CreateDatabaseWizardPageOracle.DialogMessage=Legen Sie die Tablespaces für Daten und Indizes fest.
CreateDatabaseWizardPageOracle.DataTablespace.Label=Der Tablespaces für Daten
CreateDatabaseWizardPageOracle.IndexTableSpace.Label=Der Tablespaces für Indizes
CreateDatabaseWizardPageOracle.Message.Next=Wählen Sie ''Weiter'' um fort zu fahren
###############################################################################################################
#
# CreateDatabaseWizardPageJDBC
#
###############################################################################################################
CreateDatabaseWizardPageJDBC.DialogTitle=Bestimmen Sie die JDBC Einstellungen
CreateDatabaseWizardPageJDBC.DialogMessage=Legen Sie den Server Hostnamen, den Port und den Datenbanknamen fest.
CreateDatabaseWizardPageJDBC.Hostname.Label=Hostname des Datenbankservers
CreateDatabaseWizardPageJDBC.Port.Label=Der TCP/IP Port
CreateDatabaseWizardPageJDBC.DBName.Label=Der Name der Datenbank
CreateDatabaseWizardPageJDBC.ErrorMessage.InvalidInput=Geben Sie den Server Hostnamen, den Port und den Datenbanknamen ein.
CreateDatabaseWizardPageJDBC.Message.Input=Wählen Sie ''Weiter'' um fort zu fahren
###############################################################################################################
#
# CreateDatabaseWizardPage2
#
###############################################################################################################
CreateDatabaseWizardPage2.DialogTitle=Bestimmen Sie den Benutzernamen und das Kennwort
CreateDatabaseWizardPage2.DialogMessage=Legen Sie den Benutzernamen und das Kennwort fest, um zur Datenbank zu verbinden
CreateDatabaseWizardPage2.Username.Label=Der Benutzername
CreateDatabaseWizardPage2.Password.Label=Das Passwort
CreateDatabaseWizardPage2.TestConnection.Button=Teste Datenbankverbindung
CreateDatabaseWizardPage2.Message.Finish=Wählen Sie ''Ende', um die Datenbankverbindung zu erstellen
CreateDatabaseWizardPage2.ErrorMessage.InvalidInput=Bitte stellen Sie sicher das zu mindestens der Name der Verbindung, Name der Datenbank und der Datenbanktyp festgelegt wurden\!
###############################################################################################################
#
# CreateDatabaseWizardPageSAPR3
#
###############################################################################################################
CreateDatabaseWizardPageSAPR3.DialogTitle=Legen Sie die SAP/R3 spezifischen Einstellungen fest
CreateDatabaseWizardPageSAPR3.DialogMessage=Legen Sie den Server Hostnamen, die Sprache, Systemnummer und den Mandanten fest.
CreateDatabaseWizardPageSAPR3.Hostname.Label=Hostname des SAP/3 Systems
CreateDatabaseWizardPageSAPR3.Language.Label=Sprache
CreateDatabaseWizardPageSAPR3.SystemNumber.Label=Systemnummer
CreateDatabaseWizardPageSAPR3.SAPClient.Label=SAP Mandant
CreateDatabaseWizardPageSAPR3.ErrorMessage.InvalidInput=Legen Sie den Server Hostnamen, die Sprache, Systemnummer und den Mandanten fest.
CreateDatabaseWizardPageSAPR3.Message.Next=Wählen Sie ''Weiter'' um fort zu fahren

View File

@ -0,0 +1,112 @@
###############################################################################################################
#
# CreateDatabaseWizardPageOCI
#
###############################################################################################################
CreateDatabaseWizardPageOCI.DialogTitle=Specify the Oracle TNS database
CreateDatabaseWizardPageOCI.DialogMessage=Specify the TNS database as defined in your Oracle client.
CreateDatabaseWizardPageOCI.TNS.Label=Name of the Oracle TNS database
CreateDatabaseWizardPageOCI.ErrorMessage.NoTNSName=Enter the name of the Oracle TNSNAMES database
CreateDatabaseWizardPageOCI.Message.Next=Select ''next'' to proceed
###############################################################################################################
#
# CreateDatabaseWizardPageGeneric
#
###############################################################################################################
CreateDatabaseWizardPageGeneric.DialogTitle=Specify the generic driver settings
CreateDatabaseWizardPageGeneric.DialogMessage=Specify the URL and driver class.
CreateDatabaseWizardPageGeneric.URL.Label=URL
CreateDatabaseWizardPageGeneric.DriverClass.Label=Driver class
CreateDatabaseWizardPageGeneric.ErrorMessage.URLAndDriverClassRequired=Specify the URL and driver class.
CreateDatabaseWizardPageGeneric.Message.Next=Select ''next'' to proceed
###############################################################################################################
#
# CreateDatabaseWizardPageInformix
#
###############################################################################################################
CreateDatabaseWizardPageInformix.DialogTitle=Specify the Informix servername
CreateDatabaseWizardPageInformix.DialogMessage=Specify the Informix servername.
CreateDatabaseWizardPageInformix.Servername.Label=Name of the Informix server
CreateDatabaseWizardPageInformix.ErrorMessage.ServernameRequired=Enter the name of the Informix server
CreateDatabaseWizardPageInformix.Message.Next=Select ''next'' to proceed
###############################################################################################################
#
# CreateDatabaseWizardPage1
#
###############################################################################################################
CreateDatabaseWizardPage1.DialogTitle=Select the database name and type
CreateDatabaseWizardPage1.DialogMessage=Select the database connection name, database type and access type.
CreateDatabaseWizardPage1.DBName.Label=Name of the database connection
CreateDatabaseWizardPage1.DBType.Label=Type of database to connect to
CreateDatabaseWizardPage1.DBAccessType.Label=Type of database access to use
CreateDatabaseWizardPage1.ErrorMessage.InvalidInput=Enter the name of the connection, the database type and the access method.
CreateDatabaseWizardPage1.ErrorMessage.DBNameExists=Database ''{0}'' already exists, please choose another name.
CreateDatabaseWizardPage1.Message.Next=Select ''next'' to proceed
###############################################################################################################
#
# CreateDatabaseWizardPageODBC
#
###############################################################################################################
CreateDatabaseWizardPageODBC.DialogTitle=Specify the ODBC DSN data source
CreateDatabaseWizardPageODBC.DialogMessage=Specify the ODBC DSN name as defined in the user- or system-DSN data sources.
CreateDatabaseWizardPageODBC.DSN.Label=Name of the ODBC DSN data source
CreateDatabaseWizardPageODBC.ErrorMessage.DSNRequired=Enter the name of the ODBC DSN data source
CreateDatabaseWizardPageODBC.Message.Finish=Select ''Finish'' to create the database connection
###############################################################################################################
#
# CreateDatabaseWizardPageOracle
#
###############################################################################################################
CreateDatabaseWizardPageOracle.DialogTitle=Specify the Oracle specific settings
CreateDatabaseWizardPageOracle.DialogMessage=Specify the default data and index tablespaces.
CreateDatabaseWizardPageOracle.DataTablespace.Label=The data tablespace
CreateDatabaseWizardPageOracle.IndexTableSpace.Label=The index tablespace
CreateDatabaseWizardPageOracle.Message.Next=Select ''next'' to proceed
###############################################################################################################
#
# CreateDatabaseWizardPageJDBC
#
###############################################################################################################
CreateDatabaseWizardPageJDBC.DialogTitle=Set the JDBC Settings
CreateDatabaseWizardPageJDBC.DialogMessage=Specify the server hostname, the port and the database name.
CreateDatabaseWizardPageJDBC.Hostname.Label=Host name of the database server
CreateDatabaseWizardPageJDBC.Port.Label=The TCP/IP port
CreateDatabaseWizardPageJDBC.DBName.Label=The name of the database
CreateDatabaseWizardPageJDBC.WebAppName.Label=Web App Name
CreateDatabaseWizardPageJDBC.ErrorMessage.InvalidInput=Enter the hostname of the database server, the port and the database name
CreateDatabaseWizardPageJDBC.PDSHostPort.ErrorMessage=Enter the hostname of the database server and the port
CreateDatabaseWizardPageJDBC.Message.Input=Select ''next'' to proceed
###############################################################################################################
#
# CreateDatabaseWizardPage2
#
###############################################################################################################
CreateDatabaseWizardPage2.DialogTitle=Set the username and password
CreateDatabaseWizardPage2.DialogMessage=Specify the username and password to connect to the database.
CreateDatabaseWizardPage2.Username.Label=The username
CreateDatabaseWizardPage2.Password.Label=The password
CreateDatabaseWizardPage2.TestConnection.Button=Test database connection
CreateDatabaseWizardPage2.Message.Finish=Select ''Finish'' to create the database connection
CreateDatabaseWizardPage2.ErrorMessage.InvalidInput=Please make sure that at least the name of the connection, the database name and the database type are specified\!
###############################################################################################################
#
# CreateDatabaseWizardPageSAPR3
#
###############################################################################################################
CreateDatabaseWizardPageSAPR3.DialogTitle=Specify the SAP/R3 specific settings
CreateDatabaseWizardPageSAPR3.DialogMessage=Specify the server hostname, language, system number and client.
CreateDatabaseWizardPageSAPR3.Hostname.Label=Host name of the SAP/3 system
CreateDatabaseWizardPageSAPR3.Language.Label=Language
CreateDatabaseWizardPageSAPR3.SystemNumber.Label=System Number
CreateDatabaseWizardPageSAPR3.SAPClient.Label=SAP Client
CreateDatabaseWizardPageSAPR3.ErrorMessage.InvalidInput=Specify the server hostname, language, system number and client.
CreateDatabaseWizardPageSAPR3.Message.Next=Select ''next'' to proceed

View File

@ -0,0 +1,110 @@
###############################################################################################################
#
# CreateDatabaseWizardPageOCI
#
###############################################################################################################
CreateDatabaseWizardPageOCI.DialogTitle=Especifica la base de datos TNS de Oracle
CreateDatabaseWizardPageOCI.DialogMessage=Especifica la base de datos TNS tal como se define en tu cliente Oracle.
CreateDatabaseWizardPageOCI.TNS.Label=Nombre de la base de datos TNS de Oracle
CreateDatabaseWizardPageOCI.ErrorMessage.NoTNSName=Introduce el nombre de la base de datos TNSNAMES de Oracle
CreateDatabaseWizardPageOCI.Message.Next=Pulsa ''siguiente'' para seguir
###############################################################################################################
#
# CreateDatabaseWizardPageGeneric
#
###############################################################################################################
CreateDatabaseWizardPageGeneric.DialogTitle=Configuración del controlador genérico
CreateDatabaseWizardPageGeneric.DialogMessage=Especifica la URL y el tipo de controlador.
CreateDatabaseWizardPageGeneric.URL.Label=URL
CreateDatabaseWizardPageGeneric.DriverClass.Label=Controlador
CreateDatabaseWizardPageGeneric.ErrorMessage.URLAndDriverClassRequired=Especifica la URL y el tipo de controlador.
CreateDatabaseWizardPageGeneric.Message.Next=Pulsa ''siguiente'' para seguir
###############################################################################################################
#
# CreateDatabaseWizardPageInformix
#
###############################################################################################################
CreateDatabaseWizardPageInformix.DialogTitle=Especifica el nombre del servidor Informix
CreateDatabaseWizardPageInformix.DialogMessage=Especifica el nombre del servidor Informix.
CreateDatabaseWizardPageInformix.Servername.Label=Nombre del servidor Informix
CreateDatabaseWizardPageInformix.ErrorMessage.ServernameRequired=Introduce el el nombre del servidor Informix
CreateDatabaseWizardPageInformix.Message.Next=Pulsa ''siguiente'' para seguir
###############################################################################################################
#
# CreateDatabaseWizardPage1
#
###############################################################################################################
CreateDatabaseWizardPage1.DialogTitle=Selecciona el nombre y tipo de la base de datos
CreateDatabaseWizardPage1.DialogMessage=Selecciona el nombre de la conexión a la base de datos, el tipo de base de datos y el tipo de acceso.
CreateDatabaseWizardPage1.DBName.Label=Nombre de la conexión a la base de datos
CreateDatabaseWizardPage1.DBType.Label=Tipo de base de datos
CreateDatabaseWizardPage1.DBAccessType.Label=Tipo de acceso a la base de datos
CreateDatabaseWizardPage1.ErrorMessage.InvalidInput=Introduce el nombre de la conexión, el tipo de base de datos y el método de acceso.
CreateDatabaseWizardPage1.ErrorMessage.DBNameExists=Ya existe la base de datos ''{0}'', elige otro nombre.
CreateDatabaseWizardPage1.Message.Next=Pulsa ''siguiente'' para seguir
###############################################################################################################
#
# CreateDatabaseWizardPageODBC
#
###############################################################################################################
CreateDatabaseWizardPageODBC.DialogTitle=Especifica el DSN de la fuente de datos ODBC
CreateDatabaseWizardPageODBC.DialogMessage=Especifica el nombre DSN tal como se define en la fuente de datos ODBC del usuario o sistema.
CreateDatabaseWizardPageODBC.DSN.Label=Nombre DSN de la fuente de datos ODBC
CreateDatabaseWizardPageODBC.ErrorMessage.DSNRequired=Introduce el nombre DSN de la fuente de datos ODBC
CreateDatabaseWizardPageODBC.Message.Finish=Pulsa ''Finalizar'' para crear la conexión a la base de datos
###############################################################################################################
#
# CreateDatabaseWizardPageOracle
#
###############################################################################################################
CreateDatabaseWizardPageOracle.DialogTitle=Detalla los parámetros específicos de Oracle
CreateDatabaseWizardPageOracle.DialogMessage=Especifica el data e index tablespaces por defecto.
CreateDatabaseWizardPageOracle.DataTablespace.Label=El data tablespace
CreateDatabaseWizardPageOracle.IndexTableSpace.Label=El index tablespace
CreateDatabaseWizardPageOracle.Message.Next=Pulsa ''siguiente'' para seguir
###############################################################################################################
#
# CreateDatabaseWizardPageJDBC
#
###############################################################################################################
CreateDatabaseWizardPageJDBC.DialogTitle=Configuración JDBC
CreateDatabaseWizardPageJDBC.DialogMessage=Especifica el nombre del servidor, el puerto y el nombre de la base de datos.
CreateDatabaseWizardPageJDBC.Hostname.Label=Nombre del servidor de base de datos
CreateDatabaseWizardPageJDBC.Port.Label=Puerto TCP/IP
CreateDatabaseWizardPageJDBC.DBName.Label=Nombre de la base de datos
CreateDatabaseWizardPageJDBC.ErrorMessage.InvalidInput=Introduce el nombre del servidor, el puerto y el nombre de la base de datos.
CreateDatabaseWizardPageJDBC.Message.Input=Pulsa ''siguiente'' para seguir
###############################################################################################################
#
# CreateDatabaseWizardPage2
#
###############################################################################################################
CreateDatabaseWizardPage2.DialogTitle=Usuario y contraseña
CreateDatabaseWizardPage2.DialogMessage=Especifica el usuario y contraseña para conectar a la base de datos
CreateDatabaseWizardPage2.Username.Label=Usuario
CreateDatabaseWizardPage2.Password.Label=Contraseña
CreateDatabaseWizardPage2.TestConnection.Button=Probar conexión a la base de datos
CreateDatabaseWizardPage2.Message.Finish=Pulsa ''Finalizar'' para crear la conexión a la base de datos
CreateDatabaseWizardPage2.ErrorMessage.InvalidInput=Please make sure that at least the name of the connection, the database name and the database type are specified\!
###############################################################################################################
#
# CreateDatabaseWizardPageSAPR3
#
###############################################################################################################
CreateDatabaseWizardPageSAPR3.DialogTitle=Configuración específica de SAP/R3
CreateDatabaseWizardPageSAPR3.DialogMessage=Especifica el nombre del servidor, idioma, número de sistema y cliente.
CreateDatabaseWizardPageSAPR3.Hostname.Label=Nombre servidor del sistema SAP/R3
CreateDatabaseWizardPageSAPR3.Language.Label=Idioma
CreateDatabaseWizardPageSAPR3.SystemNumber.Label=Número Sistema
CreateDatabaseWizardPageSAPR3.SAPClient.Label=Cliente SAP
CreateDatabaseWizardPageSAPR3.ErrorMessage.InvalidInput=Especifica el nombre del servidor, idioma, número de sistema y cliente.
CreateDatabaseWizardPageSAPR3.Message.Next=Pulsa ''siguiente'' para seguir

View File

@ -0,0 +1,110 @@
###############################################################################################################
#
# CreateDatabaseWizardPageOCI
#
###############################################################################################################
CreateDatabaseWizardPageOCI.DialogTitle=Especifica la base de datos TNS de Oracle
CreateDatabaseWizardPageOCI.DialogMessage=Especifica la base de datos TNS tal como se define en tu cliente Oracle.
CreateDatabaseWizardPageOCI.TNS.Label=Nombre de la base de datos TNS de Oracle
CreateDatabaseWizardPageOCI.ErrorMessage.NoTNSName=Introduce el nombre de la base de datos TNSNAMES de Oracle
CreateDatabaseWizardPageOCI.Message.Next=Pulsa ''siguiente'' para seguir
###############################################################################################################
#
# CreateDatabaseWizardPageGeneric
#
###############################################################################################################
CreateDatabaseWizardPageGeneric.DialogTitle=Configuración del controlador genérico
CreateDatabaseWizardPageGeneric.DialogMessage=Especifica la URL y el tipo de controlador.
CreateDatabaseWizardPageGeneric.URL.Label=URL
CreateDatabaseWizardPageGeneric.DriverClass.Label=Controlador
CreateDatabaseWizardPageGeneric.ErrorMessage.URLAndDriverClassRequired=Especifica la URL y el tipo de controlador.
CreateDatabaseWizardPageGeneric.Message.Next=Pulsa ''siguiente'' para seguir
###############################################################################################################
#
# CreateDatabaseWizardPageInformix
#
###############################################################################################################
CreateDatabaseWizardPageInformix.DialogTitle=Especifica el nombre del servidor Informix
CreateDatabaseWizardPageInformix.DialogMessage=Especifica el nombre del servidor Informix.
CreateDatabaseWizardPageInformix.Servername.Label=Nombre del servidor Informix
CreateDatabaseWizardPageInformix.ErrorMessage.ServernameRequired=Introduce el el nombre del servidor Informix
CreateDatabaseWizardPageInformix.Message.Next=Pulsa ''siguiente'' para seguir
###############################################################################################################
#
# CreateDatabaseWizardPage1
#
###############################################################################################################
CreateDatabaseWizardPage1.DialogTitle=Selecciona el nombre y tipo de la base de datos
CreateDatabaseWizardPage1.DialogMessage=Selecciona el nombre de la conexión a la base de datos, el tipo de base de datos y el tipo de acceso.
CreateDatabaseWizardPage1.DBName.Label=Nombre de la conexión a la base de datos
CreateDatabaseWizardPage1.DBType.Label=Tipo de base de datos
CreateDatabaseWizardPage1.DBAccessType.Label=Tipo de acceso a la base de datos
CreateDatabaseWizardPage1.ErrorMessage.InvalidInput=Introduce el nombre de la conexión, el tipo de base de datos y el método de acceso.
CreateDatabaseWizardPage1.ErrorMessage.DBNameExists=Ya existe la base de datos ''{0}'', elige otro nombre.
CreateDatabaseWizardPage1.Message.Next=Pulsa ''siguiente'' para seguir
###############################################################################################################
#
# CreateDatabaseWizardPageODBC
#
###############################################################################################################
CreateDatabaseWizardPageODBC.DialogTitle=Especifica el DSN de la fuente de datos ODBC
CreateDatabaseWizardPageODBC.DialogMessage=Especifica el nombre DSN tal como se define en la fuente de datos ODBC del usuario o sistema.
CreateDatabaseWizardPageODBC.DSN.Label=Nombre DSN de la fuente de datos ODBC
CreateDatabaseWizardPageODBC.ErrorMessage.DSNRequired=Introduce el nombre DSN de la fuente de datos ODBC
CreateDatabaseWizardPageODBC.Message.Finish=Pulsa ''Finalizar'' para crear la conexión a la base de datos
###############################################################################################################
#
# CreateDatabaseWizardPageOracle
#
###############################################################################################################
CreateDatabaseWizardPageOracle.DialogTitle=Detalla los parámetros específicos de Oracle
CreateDatabaseWizardPageOracle.DialogMessage=Especifica el data e index tablespaces por defecto.
CreateDatabaseWizardPageOracle.DataTablespace.Label=El data tablespace
CreateDatabaseWizardPageOracle.IndexTableSpace.Label=El index tablespace
CreateDatabaseWizardPageOracle.Message.Next=Pulsa ''siguiente'' para seguir
###############################################################################################################
#
# CreateDatabaseWizardPageJDBC
#
###############################################################################################################
CreateDatabaseWizardPageJDBC.DialogTitle=Configuración JDBC
CreateDatabaseWizardPageJDBC.DialogMessage=Especifica el nombre del servidor, el puerto y el nombre de la base de datos.
CreateDatabaseWizardPageJDBC.Hostname.Label=Nombre del servidor de base de datos
CreateDatabaseWizardPageJDBC.Port.Label=Puerto TCP/IP
CreateDatabaseWizardPageJDBC.DBName.Label=Nombre de la base de datos
CreateDatabaseWizardPageJDBC.ErrorMessage.InvalidInput=Introduce el nombre del servidor, el puerto y el nombre de la base de datos.
CreateDatabaseWizardPageJDBC.Message.Input=Pulsa ''siguiente'' para seguir
###############################################################################################################
#
# CreateDatabaseWizardPage2
#
###############################################################################################################
CreateDatabaseWizardPage2.DialogTitle=Usuario y contraseña
CreateDatabaseWizardPage2.DialogMessage=Especifica el usuario y contraseña para conectar a la base de datos
CreateDatabaseWizardPage2.Username.Label=Usuario
CreateDatabaseWizardPage2.Password.Label=Contraseña
CreateDatabaseWizardPage2.TestConnection.Button=Probar conexión a la base de datos
CreateDatabaseWizardPage2.Message.Finish=Pulsa ''Finalizar'' para crear la conexión a la base de datos
CreateDatabaseWizardPage2.ErrorMessage.InvalidInput=Please make sure that at least the name of the connection, the database name and the database type are specified\!
###############################################################################################################
#
# CreateDatabaseWizardPageSAPR3
#
###############################################################################################################
CreateDatabaseWizardPageSAPR3.DialogTitle=Configuración específica de SAP/R3
CreateDatabaseWizardPageSAPR3.DialogMessage=Especifica el nombre del servidor, idioma, número de sistema y cliente.
CreateDatabaseWizardPageSAPR3.Hostname.Label=Nombre servidor del sistema SAP/R3
CreateDatabaseWizardPageSAPR3.Language.Label=Idioma
CreateDatabaseWizardPageSAPR3.SystemNumber.Label=Número Sistema
CreateDatabaseWizardPageSAPR3.SAPClient.Label=Cliente SAP
CreateDatabaseWizardPageSAPR3.ErrorMessage.InvalidInput=Especifica el nombre del servidor, idioma, número de sistema y cliente.
CreateDatabaseWizardPageSAPR3.Message.Next=Pulsa ''siguiente'' para seguir

View File

@ -0,0 +1,111 @@
###############################################################################################################
#
# CreateDatabaseWizardPageOCI
#
###############################################################################################################
CreateDatabaseWizardPageOCI.DialogTitle=Indiquer base de données Oracle (TNS)
CreateDatabaseWizardPageOCI.DialogMessage=Indiquer la base de données (TNS) comme spécifié au niveau de votre client Oracle.
CreateDatabaseWizardPageOCI.TNS.Label=Nom de la basse de données Oracle
CreateDatabaseWizardPageOCI.ErrorMessage.NoTNSName=Indiquer le nom de la base de données Oracle TNSNAMES
CreateDatabaseWizardPageOCI.Message.Next=Cliquer sur ''suivant'' pour continuer
###############################################################################################################
#
# CreateDatabaseWizardPageGeneric
#
###############################################################################################################
CreateDatabaseWizardPageGeneric.DialogTitle=Indiquer les paramètres du pilote générique
CreateDatabaseWizardPageGeneric.DialogMessage=Indiquer l''URL et la classe de pilote.
CreateDatabaseWizardPageGeneric.URL.Label=URL
CreateDatabaseWizardPageGeneric.DriverClass.Label=Classe pilote
CreateDatabaseWizardPageGeneric.ErrorMessage.URLAndDriverClassRequired=Indiquer l''URL et la classe de pilote.
CreateDatabaseWizardPageGeneric.Message.Next=Cliquer sur ''suivant'' pour continuer
###############################################################################################################
#
# CreateDatabaseWizardPageInformix
#
###############################################################################################################
CreateDatabaseWizardPageInformix.DialogTitle=Indiquer le nom du serveur Informix
CreateDatabaseWizardPageInformix.DialogMessage=Indiquer le nom du serveur Informix.
CreateDatabaseWizardPageInformix.Servername.Label=Nom du serveur Informix
CreateDatabaseWizardPageInformix.ErrorMessage.ServernameRequired=Entrez le nom du serveur Informix
CreateDatabaseWizardPageInformix.Message.Next=Cliquer sur ''suivant'' pour continuer
###############################################################################################################
#
# CreateDatabaseWizardPage1
#
###############################################################################################################
CreateDatabaseWizardPage1.DialogTitle=Sélectionner le nom et type de la base de données
CreateDatabaseWizardPage1.DialogMessage=Sélectionner le nom et le type d''accès de la connexion base de données.
CreateDatabaseWizardPage1.DBName.Label=Nom de la connexion base de données
CreateDatabaseWizardPage1.DBType.Label=Type de base de données
CreateDatabaseWizardPage1.DBAccessType.Label=Type d''accès base de données
CreateDatabaseWizardPage1.ErrorMessage.InvalidInput=Entrez le nom de la connexion, le type de base de données et la méthode d''accès.
CreateDatabaseWizardPage1.ErrorMessage.DBNameExists=La Base de données '{0}' existe déjà, veuillez svp choisir un autre nom.
CreateDatabaseWizardPage1.Message.Next=Cliquer sur ''suivant'' pour continuer
###############################################################################################################
#
# CreateDatabaseWizardPageODBC
#
###############################################################################################################
CreateDatabaseWizardPageODBC.DialogTitle=Indiquer la source de données (DSN) ODBC
CreateDatabaseWizardPageODBC.DialogMessage=Indiquer le nom DSN ODBC comme défini dans les sources de données système ou utilisateur.
CreateDatabaseWizardPageODBC.DSN.Label=Nom de la source de données DSN ODBC
CreateDatabaseWizardPageODBC.ErrorMessage.DSNRequired=Entrez le nom de la source de données DSN ODBC
CreateDatabaseWizardPageODBC.Message.Finish=Cliquer sur ''suivant'' pour continuer
###############################################################################################################
#
# CreateDatabaseWizardPageOracle
#
###############################################################################################################
CreateDatabaseWizardPageOracle.DialogTitle=Indiquer les paramètres spécifiques Oracle
CreateDatabaseWizardPageOracle.DialogMessage=Indiquer les tablespaces par défaut
CreateDatabaseWizardPageOracle.DataTablespace.Label=Le tablespace des données
CreateDatabaseWizardPageOracle.IndexTableSpace.Label=L''index tablespace
CreateDatabaseWizardPageOracle.Message.Next=Cliquer sur ''suivant'' pour continuer
###############################################################################################################
#
# CreateDatabaseWizardPageJDBC
#
###############################################################################################################
CreateDatabaseWizardPageJDBC.DialogTitle=Définition des paramètres JDBC
CreateDatabaseWizardPageJDBC.DialogMessage=Indiquer le nom du serveur hôte, le port et le nom de la BDD.
CreateDatabaseWizardPageJDBC.Hostname.Label=Nom du serveur hôte de la base de données
CreateDatabaseWizardPageJDBC.Port.Label=Le port TCP/IP
CreateDatabaseWizardPageJDBC.DBName.Label=Le nom de la base de données
CreateDatabaseWizardPageJDBC.ErrorMessage.InvalidInput=Indiquer le nom du serveur hôte de la base de données, le port et le nom de la base
CreateDatabaseWizardPageJDBC.Message.Input=Cliquer sur ''suivant'' pour continuer
###############################################################################################################
#
# CreateDatabaseWizardPage2
#
###############################################################################################################
CreateDatabaseWizardPage2.DialogTitle=Identifier l''utilisateur et le mot de passe
CreateDatabaseWizardPage2.DialogMessage=Indiquer l''utilisateur et le mot de passe pour établir une cnnexion à la base de données.
CreateDatabaseWizardPage2.Username.Label=Utilisateur
CreateDatabaseWizardPage2.Password.Label=Mot de passe
CreateDatabaseWizardPage2.TestConnection.Button=Test connexion Base de données
CreateDatabaseWizardPage2.Message.Finish=Cliquer sur ''Terminer'' pour créer la connexion à la base de données
CreateDatabaseWizardPage2.ErrorMessage.InvalidInput=Veuillez vous assurer qu''au moins le nom de la connexion, le nom et le type de la base de données ont été indiqués!
###############################################################################################################
#
# CreateDatabaseWizardPageSAPR3
#
###############################################################################################################
CreateDatabaseWizardPageSAPR3.DialogTitle=Indiquer les paramètres spécifiques de SAP/R3
CreateDatabaseWizardPageSAPR3.DialogMessage=Indiquer le nom du serveur, la langue, le nombre système et le client.
CreateDatabaseWizardPageSAPR3.Hostname.Label=Nom hôte du système SAP/R3
CreateDatabaseWizardPageSAPR3.Language.Label=Langue
CreateDatabaseWizardPageSAPR3.SystemNumber.Label=Nombre Système
CreateDatabaseWizardPageSAPR3.SAPClient.Label=Client SAP
CreateDatabaseWizardPageSAPR3.ErrorMessage.InvalidInput=Indiquer le nom du serveur, la langue, le nombre système et le client.
CreateDatabaseWizardPageSAPR3.Message.Next=Cliquer sur ''suivant'' pour continuer

View File

@ -0,0 +1,60 @@
#File generated by Hitachi Vantara Transator for package 'org.pentaho.di.ui.core.database.wizard' in locale 'it_IT'
#
#
#Mon Nov 26 14:40:05 CET 2007
CreateDatabaseWizardPageOracle.DialogMessage=Specificare i tablespace per i dati di default e per gli indici.
CreateDatabaseWizardPage1.DialogTitle=Seleziona il nome del database ed il tipo
CreateDatabaseWizardPage2.ErrorMessage.InvalidInput=Assicurarsi di specificare almeno il nome della connessione, il nome del database ed il tipo di database\!
CreateDatabaseWizardPageSAPR3.DialogMessage=Specificare il nome del server, la lingua, il numero del sistema ed il client.
CreateDatabaseWizardPageJDBC.ErrorMessage.InvalidInput=Inserire il nome host del server database, la porta ed il nome del database
CreateDatabaseWizardPageJDBC.DialogTitle=Impostare i parametri JDBC
CreateDatabaseWizardPageGeneric.Message.Next=Seleziona "prossimo" per procedere
CreateDatabaseWizardPageOCI.DialogTitle=Specificare il database TNS Oracle
CreateDatabaseWizardPageGeneric.DialogTitle=Specifica i parametri del driver generico
CreateDatabaseWizardPageJDBC.DialogMessage=Specificare il nome del server, la porta ed il nome del database.
CreateDatabaseWizardPageOCI.TNS.Label=Nome del database TNS Oracle
CreateDatabaseWizardPageSAPR3.SAPClient.Label=Client SAP
CreateDatabaseWizardPageJDBC.DBName.Label=Il nome del database
CreateDatabaseWizardPageSAPR3.DialogTitle=Specifica i parametri per SAP/R3
CreateDatabaseWizardPageSAPR3.Hostname.Label=Nome host del sistema SAP/3
CreateDatabaseWizardPageInformix.DialogTitle=Specificare il nome del server Informix
CreateDatabaseWizardPageODBC.DSN.Label=Nome della sorgente dati ODBC DSN
CreateDatabaseWizardPageInformix.ErrorMessage.ServernameRequired=Inserire il nome del server Informix
CreateDatabaseWizardPageJDBC.Message.Input=Seleziona "prossimo" per procedere
CreateDatabaseWizardPageGeneric.URL.Label=URL
CreateDatabaseWizardPageOracle.DialogTitle=Specificare i parametri Oracle
CreateDatabaseWizardPageOCI.DialogMessage=Specificare il database TNS come definito nel client Oracle.
CreateDatabaseWizardPage1.DBAccessType.Label=Tipo di accesso al database da usare
CreateDatabaseWizardPageODBC.DialogMessage=Specificare il nome ODBC DSN come definito nelle sorgenti dati DSN utente o sistema.
CreateDatabaseWizardPage1.DBType.Label=Tipo di database a cui connettersi
CreateDatabaseWizardPage1.Message.Next=Seleziona "prossimo" per procedere
CreateDatabaseWizardPageInformix.Message.Next=Seleziona "prossimo" per procedere
CreateDatabaseWizardPageODBC.Message.Finish=Seleziona "Finisci" per creare una connessione del database
CreateDatabaseWizardPageOracle.Message.Next=Seleziona "prossimo" per procedere
CreateDatabaseWizardPageOracle.IndexTableSpace.Label=Tablespace indice
CreateDatabaseWizardPageGeneric.ErrorMessage.URLAndDriverClassRequired=Specificare l''URL e la classe di driver.
CreateDatabaseWizardPageSAPR3.SystemNumber.Label=Numero di sistema
CreateDatabaseWizardPage2.TestConnection.Button=Prova la connessione al database
CreateDatabaseWizardPageOracle.DataTablespace.Label=Tablespace dei dati
CreateDatabaseWizardPageODBC.ErrorMessage.DSNRequired=Inserire il nome della sorgente dati ODBC DSN
CreateDatabaseWizardPageSAPR3.Message.Next=Seleziona "prossimo" per procedere
CreateDatabaseWizardPage2.DialogMessage=Specificare il nome utente e la password per connettersi al database.
CreateDatabaseWizardPage2.Message.Finish=Seleziona "Finisci" per creare una connessione del database
CreateDatabaseWizardPageGeneric.DialogMessage=Specificare l''URL e la classe di driver.
CreateDatabaseWizardPageOCI.Message.Next=Seleziona "prossimo" per procedere
CreateDatabaseWizardPage2.Password.Label=Password
CreateDatabaseWizardPageInformix.DialogMessage=Specificare il nome del server Informix.
CreateDatabaseWizardPageJDBC.Port.Label=La porta TCP/IP
CreateDatabaseWizardPage2.Username.Label=Utente
CreateDatabaseWizardPage1.DBName.Label=Nome della connessione database
CreateDatabaseWizardPage2.DialogTitle=Imposta utente e password
CreateDatabaseWizardPage1.ErrorMessage.DBNameExists=Database ''{0}'' gi\u00E0 esistente, prego scegliere un altro nome.
CreateDatabaseWizardPageSAPR3.ErrorMessage.InvalidInput=Specificare il nome del server, la lingua, il numero del sistema ed il client.
CreateDatabaseWizardPageInformix.Servername.Label=Nome del server Informix
CreateDatabaseWizardPageJDBC.Hostname.Label=Nome host del server database
CreateDatabaseWizardPageOCI.ErrorMessage.NoTNSName=Inserire il nome del database Oracle TNSNAMES
CreateDatabaseWizardPage1.ErrorMessage.InvalidInput=Inserire il nome della connessione, il tipo di database ed il metodo di accesso.
CreateDatabaseWizardPageGeneric.DriverClass.Label=Classe Driver
CreateDatabaseWizardPageSAPR3.Language.Label=Linguaggio
CreateDatabaseWizardPageODBC.DialogTitle=Specificare la sorgente dati ODBC DSN
CreateDatabaseWizardPage1.DialogMessage=Seleziona il nome della connessione database, il tipo di database ed il tipo di access.

View File

@ -0,0 +1,110 @@
###############################################################################################################
#
# CreateDatabaseWizardPageOCI
#
###############################################################################################################
CreateDatabaseWizardPageOCI.DialogTitle=OCI(Oracle Call Interface) \u8a2d\u5b9a
CreateDatabaseWizardPageOCI.DialogMessage=TNS\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPageOCI.TNS.Label=TNS\u540d
CreateDatabaseWizardPageOCI.ErrorMessage.NoTNSName=TNS\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPageOCI.Message.Next=\u300cNext\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002
###############################################################################################################
#
# CreateDatabaseWizardPageGeneric
#
###############################################################################################################
CreateDatabaseWizardPageGeneric.DialogTitle=\u6c4e\u7528\u30c9\u30e9\u30a4\u30d0\u30fc \u8a2d\u5b9a
CreateDatabaseWizardPageGeneric.DialogMessage=URL\u3068\u30c9\u30e9\u30a4\u30d0\u30fb\u30bf\u30a4\u30d7\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPageGeneric.URL.Label=URL
CreateDatabaseWizardPageGeneric.DriverClass.Label=\u30c9\u30e9\u30a4\u30d0\u30fb\u30bf\u30a4\u30d7
CreateDatabaseWizardPageGeneric.ErrorMessage.URLAndDriverClassRequired=URL\u3068\u30c9\u30e9\u30a4\u30d0\u30fb\u30bf\u30a4\u30d7\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPageGeneric.Message.Next=\u300cNext\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002
###############################################################################################################
#
# CreateDatabaseWizardPageInformix
#
###############################################################################################################
CreateDatabaseWizardPageInformix.DialogTitle=Informix\u30b5\u30fc\u30d0 \u8a2d\u5b9a
CreateDatabaseWizardPageInformix.DialogMessage=Informix\u306e\u30b5\u30fc\u30d0\u540d\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPageInformix.Servername.Label=Informix\u30b5\u30fc\u30d0\u540d
CreateDatabaseWizardPageInformix.ErrorMessage.ServernameRequired=Informix\u306e\u30b5\u30fc\u30d0\u540d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPageInformix.Message.Next=\u300cNext\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002
###############################################################################################################
#
# CreateDatabaseWizardPage1
#
###############################################################################################################
CreateDatabaseWizardPage1.DialogTitle=\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u30a6\u30a3\u30b6\u30fc\u30c9 (1/2)
CreateDatabaseWizardPage1.DialogMessage=\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u540d\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3001\u30c9\u30e9\u30a4\u30d0\u30fb\u30bf\u30a4\u30d7\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPage1.DBName.Label=\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u540d
CreateDatabaseWizardPage1.DBType.Label=\u63a5\u7d9a\u53ef\u80fd\u306a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9
CreateDatabaseWizardPage1.DBAccessType.Label=\u30c9\u30e9\u30a4\u30d0\u30fb\u30bf\u30a4\u30d7
CreateDatabaseWizardPage1.ErrorMessage.DBNameExists=\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u540d "{0}" \u306f\u3059\u3067\u306b\u5b58\u5728\u3057\u307e\u3059\u3002\u5225\u306e\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPage1.ErrorMessage.InvalidInput=\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u540d\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3001\u30c9\u30e9\u30a4\u30d0\u30fb\u30bf\u30a4\u30d7\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPage1.Message.Next=\u300cNext\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002
###############################################################################################################
#
# CreateDatabaseWizardPageODBC
#
###############################################################################################################
CreateDatabaseWizardPageODBC.DialogTitle=DSN\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9 \u8a2d\u5b9a
CreateDatabaseWizardPageODBC.DialogMessage=\u30e6\u30fc\u30b6\u307e\u305f\u306f\u30b7\u30b9\u30c6\u30e0DSN\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u540d\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPageODBC.DSN.Label=DSN\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u540d
CreateDatabaseWizardPageODBC.ErrorMessage.DSNRequired=\u30e6\u30fc\u30b6\u307e\u305f\u306f\u30b7\u30b9\u30c6\u30e0DSN\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u540d\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPageODBC.Message.Finish=\u300cFinish\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002
###############################################################################################################
#
# CreateDatabaseWizardPageOracle
#
###############################################################################################################
CreateDatabaseWizardPageOracle.DialogTitle=ORACLE\u8a2d\u5b9a
CreateDatabaseWizardPageOracle.DialogMessage=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30c7\u30fc\u30bf\u304a\u3088\u3073\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u30fb\u30c6\u30fc\u30d6\u30eb\u30b9\u30da\u30fc\u30b9\u540d\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPageOracle.DataTablespace.Label=\u30c6\u30fc\u30d6\u30eb\u30b9\u30da\u30fc\u30b9\u540d
CreateDatabaseWizardPageOracle.IndexTableSpace.Label=\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u30fb\u30c6\u30fc\u30d6\u30eb\u30b9\u30da\u30fc\u30b9\u540d
CreateDatabaseWizardPageOracle.Message.Next=\u300cNext\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002
###############################################################################################################
#
# CreateDatabaseWizardPageJDBC
#
###############################################################################################################
CreateDatabaseWizardPageJDBC.DialogTitle=JDBC \u8a2d\u5b9a
CreateDatabaseWizardPageJDBC.DialogMessage=\u30b5\u30fc\u30d0\u540d\u3001\u30dd\u30fc\u30c8\u756a\u53f7\u304a\u3088\u3073\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPageJDBC.Hostname.Label=\u30b5\u30fc\u30d0\u540d
CreateDatabaseWizardPageJDBC.Port.Label=\u30dd\u30fc\u30c8\u756a\u53f7
CreateDatabaseWizardPageJDBC.DBName.Label=\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u540d
CreateDatabaseWizardPageJDBC.ErrorMessage.InvalidInput=\u30b5\u30fc\u30d0\u540d\u3001\u30dd\u30fc\u30c8\u756a\u53f7\u304a\u3088\u3073\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPageJDBC.Message.Input=\u300cNext\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002
###############################################################################################################
#
# CreateDatabaseWizardPage2
#
###############################################################################################################
CreateDatabaseWizardPage2.DialogTitle=\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u30a6\u30a3\u30b6\u30fc\u30c9 (2/2)
CreateDatabaseWizardPage2.DialogMessage=\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u63a5\u7d9a\u3059\u308b\u305f\u3081\u306b\u30e6\u30fc\u30b6\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPage2.Username.Label=\u30e6\u30fc\u30b6\u540d
CreateDatabaseWizardPage2.Password.Label=\u30d1\u30b9\u30ef\u30fc\u30c9
CreateDatabaseWizardPage2.TestConnection.Button=\u30c6\u30b9\u30c8\u63a5\u7d9a
CreateDatabaseWizardPage2.Message.Finish=\u300cFinish\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPage2.ErrorMessage.InvalidInput=\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u540d\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3001\u30c9\u30e9\u30a4\u30d0\u30fb\u30bf\u30a4\u30d7\u304c\u9078\u629e\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002
###############################################################################################################
#
# CreateDatabaseWizardPageSAPR3
#
###############################################################################################################
CreateDatabaseWizardPageSAPR3.DialogTitle=SAP/R3 \u8a2d\u5b9a
CreateDatabaseWizardPageSAPR3.DialogMessage=\u30b5\u30fc\u30d0\u540d\u3001\u8a00\u8a9e\u3001\u30b7\u30b9\u30c6\u30e0\u756a\u53f7\u304a\u3088\u3073\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPageSAPR3.Hostname.Label=\u30b5\u30fc\u30d0\u540d
CreateDatabaseWizardPageSAPR3.Language.Label=\u8a00\u8a9e
CreateDatabaseWizardPageSAPR3.SystemNumber.Label=\u30b7\u30b9\u30c6\u30e0\u756a\u53f7
CreateDatabaseWizardPageSAPR3.SAPClient.Label=\u30af\u30e9\u30a4\u30a2\u30f3\u30c8
CreateDatabaseWizardPageSAPR3.ErrorMessage.InvalidInput=\u30b5\u30fc\u30d0\u540d\u3001\u8a00\u8a9e\u3001\u30b7\u30b9\u30c6\u30e0\u756a\u53f7\u304a\u3088\u3073\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
CreateDatabaseWizardPageSAPR3.Message.Next=\u300cNext\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002

View File

@ -0,0 +1,60 @@
#File generated by Hitachi Vantara Translator for package 'org.pentaho.di.ui.core.database.wizard' in locale 'ko_KR'
#
#
#Wed May 20 13:27:15 KST 2009
CreateDatabaseWizardPageOracle.DialogMessage=\uAE30\uBCF8 \uB370\uC774\uD130 \uBC0F \uC778\uB371\uC2A4 \uD14C\uC774\uBE14\uC2A4\uD398\uC774\uC2A4\uB97C \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624.
CreateDatabaseWizardPage1.DialogTitle=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC774\uB984\uACFC \uD615\uC2DD\uC744 \uC120\uD0DD\uD558\uC2ED\uC2DC\uC624
CreateDatabaseWizardPage2.ErrorMessage.InvalidInput=\uC5F0\uACB0 \uC774\uB984, \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC774\uB984, \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uD0C0\uC785\uC774 \uC9C0\uC815\uB418\uC5C8\uB294\uC9C0 \uD655\uC778\uD558\uC2ED\uC2DC\uC624\!
CreateDatabaseWizardPageSAPR3.DialogMessage=\uC11C\uBC84 \uD638\uC2A4\uD2B8 \uC774\uB984, \uC5B8\uC5B4, \uC2DC\uC2A4\uD15C \uBC88\uD638\uC640 \uD074\uB77C\uC774\uC5B8\uD2B8\uB97C \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624.
CreateDatabaseWizardPageJDBC.ErrorMessage.InvalidInput=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC11C\uBC84, \uD3EC\uD2B8 \uADF8\uB9AC\uACE0 \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC774\uB984\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624
CreateDatabaseWizardPageJDBC.DialogTitle=JDBC \uC124\uC815
CreateDatabaseWizardPageGeneric.Message.Next=\uC9C4\uD589\uC744 \uC704\uD574 ''\uB2E4\uC74C''\uC744 \uB204\uB974\uC2ED\uC2DC\uC624
CreateDatabaseWizardPageOCI.DialogTitle=Oracle TNS \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uB97C \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624
CreateDatabaseWizardPageGeneric.DialogTitle=\uC77C\uBC18 \uB4DC\uB77C\uC774\uBC84 \uC124\uC815 \uC9C0\uC815
CreateDatabaseWizardPageJDBC.DialogMessage=\uC11C\uBC84 \uD638\uC2A4\uD2B8 \uC774\uB984, \uD3EC\uD2B8, \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC774\uB984\uC744 \uC800\uC815\uD558\uC2ED\uC2DC\uC624
CreateDatabaseWizardPageOCI.TNS.Label=Oracle TNS \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC774\uB984
CreateDatabaseWizardPageSAPR3.SAPClient.Label=SAP \uD074\uB77C\uC774\uC5B8\uD2B8
CreateDatabaseWizardPageJDBC.DBName.Label=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC774\uB984
CreateDatabaseWizardPageSAPR3.DialogTitle=SAP/R3 \uC124\uC815\uC744 \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624
CreateDatabaseWizardPageSAPR3.Hostname.Label=SAP/2 \uC2DC\uC2A4\uD15C \uD638\uC2A4\uD2B8 \uC774\uB984
CreateDatabaseWizardPageInformix.DialogTitle=Informix \uC11C\uBC84\uC774\uB984 \uC9C0\uC815
CreateDatabaseWizardPageODBC.DSN.Label=ODBC DSN \uB370\uC774\uD130 \uC18C\uC2A4 \uC774\uB984
CreateDatabaseWizardPageInformix.ErrorMessage.ServernameRequired=Informix \uC11C\uBC84\uC758 \uC774\uB984\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624
CreateDatabaseWizardPageJDBC.Message.Input=\uC9C4\uD589\uC744 \uC704\uD574 ''\uB2E4\uC74C''\uC744 \uB204\uB974\uC2ED\uC2DC\uC624
CreateDatabaseWizardPageGeneric.URL.Label=URL
CreateDatabaseWizardPageOracle.DialogTitle=Oracle \uC124\uC815 \uC9C0\uC815
CreateDatabaseWizardPageOCI.DialogMessage=Oracle \uD074\uB77C\uC774\uC5B8\uD2B8\uC5D0 \uC815\uC758\uB41C TNS \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uB97C \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624.
CreateDatabaseWizardPage1.DBAccessType.Label=\uC0AC\uC6A9\uD560 \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0 \uD615\uC2DD
CreateDatabaseWizardPageODBC.DialogMessage=\uC0AC\uC6A9\uC790 \uB610\uB294 \uC2DC\uC2A4\uD15C DSN \uB370\uC774\uD130\uC18C\uC2A4\uB85C \uC815\uC758\uB41C ODBC DSN\uC774\uB984\uC744 \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624.
CreateDatabaseWizardPage1.DBType.Label=\uC5F0\uACB0\uD560 \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uD615\uC2DD
CreateDatabaseWizardPage1.Message.Next=\uC9C4\uD589\uC744 \uC704\uD574 ''\uB2E4\uC74C''\uC744 \uB204\uB974\uC2ED\uC2DC\uC624
CreateDatabaseWizardPageInformix.Message.Next=\uC9C4\uD589\uC744 \uC704\uD574 "\uB2E4\uC74C"\uC744 \uC120\uD0DD\uD558\uC2ED\uC2DC\uC624.
CreateDatabaseWizardPageODBC.Message.Finish=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0\uC744 \uC0DD\uC131\uD558\uB824\uBA74 '\uC644\uB8CC'\uB97C \uC120\uD0DD\uD558\uC2ED\uC2DC\uC624.
CreateDatabaseWizardPageOracle.Message.Next=\uC9C4\uD589\uC744 \uC704\uD574 ''\uB2E4\uC74C''\uC744 \uB204\uB974\uC2ED\uC2DC\uC624
CreateDatabaseWizardPageOracle.IndexTableSpace.Label=\uC778\uB371\uC2A4 \uD14C\uC774\uBE14\uC2A4\uD398\uC774\uC2A4
CreateDatabaseWizardPageGeneric.ErrorMessage.URLAndDriverClassRequired=URL\uACFC \uB4DC\uB77C\uC774\uBC84 \uD074\uB798\uC2A4\uB97C \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624
CreateDatabaseWizardPageSAPR3.SystemNumber.Label=System Number
CreateDatabaseWizardPage2.TestConnection.Button=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0 \uD14C\uC2A4\uD2B8
CreateDatabaseWizardPageOracle.DataTablespace.Label=\uB370\uC774\uD130 \uD14C\uC774\uBE14\uC2A4\uD398\uC774\uC2A4
CreateDatabaseWizardPageODBC.ErrorMessage.DSNRequired=ODBC DSN \uB370\uC774\uD130 \uC18C\uC2A4\uC758 \uC774\uB984\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624
CreateDatabaseWizardPageSAPR3.Message.Next=\uC9C4\uD589\uC744 \uC704\uD574 ''\uB2E4\uC74C''\uC744 \uB204\uB974\uC2ED\uC2DC\uC624
CreateDatabaseWizardPage2.DialogMessage=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC0AC\uC6A9\uC790 \uC774\uB984\uACFC \uD328\uC2A4\uC6CC\uB4DC\uB97C \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624
CreateDatabaseWizardPage2.Message.Finish=''\uC644\uB8CC''\uB97C \uB20C\uB7EC \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0\uC744 \uC0DD\uC131\uD558\uC2ED\uC2DC\uC624
CreateDatabaseWizardPageGeneric.DialogMessage=URL\uACFC \uB4DC\uB77C\uC774\uBC84 \uD074\uB798\uC2A4\uB97C \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624.
CreateDatabaseWizardPageOCI.Message.Next=\uC9C4\uD589\uC744 \uC704\uD574 ''\uB2E4\uC74C''\uC744 \uB204\uB974\uC2ED\uC2DC\uC624
CreateDatabaseWizardPage2.Password.Label=\uC554\uD638
CreateDatabaseWizardPageInformix.DialogMessage=Informix \uC11C\uBC84\uC774\uB984\uC744 \uC9C0\uC815\uD558\uC2DC\uC624
CreateDatabaseWizardPageJDBC.Port.Label=TCP/IP \uD3EC\uD2B8
CreateDatabaseWizardPage2.Username.Label=\uC0AC\uC6A9\uC790 \uC774\uB984
CreateDatabaseWizardPage1.DBName.Label=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0 \uC774\uB984
CreateDatabaseWizardPage2.DialogTitle=\uC0AC\uC6A9\uC790 \uC774\uB984\uACFC \uC554\uD638 \uC124\uC815
CreateDatabaseWizardPageSAPR3.ErrorMessage.InvalidInput=\uC11C\uBC84 \uD638\uC2A4\uD2B8\uC774\uB984, \uC5B8\uC5B4, system number \uADF8\uB9AC\uACE0 \uD074\uB77C\uC774\uC5B8\uD2B8\uB97C \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624
CreateDatabaseWizardPage1.ErrorMessage.DBNameExists=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 ''{0}''\uB294 \uC774\uBBF8 \uC874\uC7AC\uD569\uB2C8\uB2E4, \uB2E4\uB978 \uC774\uB984\uC744 \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624.
CreateDatabaseWizardPageJDBC.Hostname.Label=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC11C\uBC84 \uD638\uC2A4\uD2B8 \uC774\uB984
CreateDatabaseWizardPageInformix.Servername.Label=informix \uC11C\uBC84 \uC774\uB984
CreateDatabaseWizardPageOCI.ErrorMessage.NoTNSName=\uC624\uB77C\uD074 TNSNAMES \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC758 \uC774\uB984 \uC785\uB825
CreateDatabaseWizardPageGeneric.DriverClass.Label=\uB4DC\uB77C\uC774\uBC84 \uD074\uB798\uC2A4
CreateDatabaseWizardPage1.ErrorMessage.InvalidInput=\uC5F0\uACB0\uC758 \uC774\uB984\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624, \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uD0C0\uC785\uACE0 \uC561\uC138\uC2A4 \uBC29\uBC95
CreateDatabaseWizardPageSAPR3.Language.Label=\uC5B8\uC5B4
CreateDatabaseWizardPageODBC.DialogTitle=ODBC DSN \uB370\uC774\uD130 \uC18C\uC2A4 \uC774\uB984\uC744 \uC9C0\uC815
CreateDatabaseWizardPage1.DialogMessage=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0 \uC774\uB984, \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uD615\uC2DD, \uC5F0\uACB0 \uD615\uC2DD \uC120\uD0DD

Some files were not shown because too many files have changed in this diff Show More