use of org.pentaho.di.core.NotePadMeta in project pentaho-kettle by pentaho.
the class JobMeta method getMinimum.
/**
* Get the minimum point on the canvas of a job
*
* @return Minimum coordinate of a step in the job
*/
public Point getMinimum() {
int minx = Integer.MAX_VALUE;
int miny = Integer.MAX_VALUE;
for (int i = 0; i < nrJobEntries(); i++) {
JobEntryCopy jobEntryCopy = getJobEntry(i);
Point loc = jobEntryCopy.getLocation();
if (loc.x < minx) {
minx = loc.x;
}
if (loc.y < miny) {
miny = loc.y;
}
}
for (int i = 0; i < nrNotes(); i++) {
NotePadMeta notePadMeta = getNote(i);
Point loc = notePadMeta.getLocation();
if (loc.x < minx) {
minx = loc.x;
}
if (loc.y < miny) {
miny = loc.y;
}
}
if (minx > BORDER_INDENT && minx != Integer.MAX_VALUE) {
minx -= BORDER_INDENT;
} else {
minx = 0;
}
if (miny > BORDER_INDENT && miny != Integer.MAX_VALUE) {
miny -= BORDER_INDENT;
} else {
miny = 0;
}
return new Point(minx, miny);
}
use of org.pentaho.di.core.NotePadMeta in project pentaho-kettle by pentaho.
the class JobMeta method getStringList.
/**
* Get a list of all the strings used in this job.
*
* @return A list of StringSearchResult with strings used in the job
*/
public List<StringSearchResult> getStringList(boolean searchSteps, boolean searchDatabases, boolean searchNotes) {
List<StringSearchResult> stringList = new ArrayList<StringSearchResult>();
if (searchSteps) {
// vars are...
for (int i = 0; i < nrJobEntries(); i++) {
JobEntryCopy entryMeta = getJobEntry(i);
stringList.add(new StringSearchResult(entryMeta.getName(), entryMeta, this, BaseMessages.getString(PKG, "JobMeta.SearchMetadata.JobEntryName")));
if (entryMeta.getDescription() != null) {
stringList.add(new StringSearchResult(entryMeta.getDescription(), entryMeta, this, BaseMessages.getString(PKG, "JobMeta.SearchMetadata.JobEntryDescription")));
}
JobEntryInterface metaInterface = entryMeta.getEntry();
StringSearcher.findMetaData(metaInterface, 1, stringList, entryMeta, this);
}
}
// are...
if (searchDatabases) {
for (int i = 0; i < nrDatabases(); i++) {
DatabaseMeta meta = getDatabase(i);
stringList.add(new StringSearchResult(meta.getName(), meta, this, BaseMessages.getString(PKG, "JobMeta.SearchMetadata.DatabaseConnectionName")));
if (meta.getHostname() != null) {
stringList.add(new StringSearchResult(meta.getHostname(), meta, this, BaseMessages.getString(PKG, "JobMeta.SearchMetadata.DatabaseHostName")));
}
if (meta.getDatabaseName() != null) {
stringList.add(new StringSearchResult(meta.getDatabaseName(), meta, this, BaseMessages.getString(PKG, "JobMeta.SearchMetadata.DatabaseName")));
}
if (meta.getUsername() != null) {
stringList.add(new StringSearchResult(meta.getUsername(), meta, this, BaseMessages.getString(PKG, "JobMeta.SearchMetadata.DatabaseUsername")));
}
if (meta.getPluginId() != null) {
stringList.add(new StringSearchResult(meta.getPluginId(), meta, this, BaseMessages.getString(PKG, "JobMeta.SearchMetadata.DatabaseTypeDescription")));
}
if (meta.getDatabasePortNumberString() != null) {
stringList.add(new StringSearchResult(meta.getDatabasePortNumberString(), meta, this, BaseMessages.getString(PKG, "JobMeta.SearchMetadata.DatabasePort")));
}
if (meta.getServername() != null) {
stringList.add(new StringSearchResult(meta.getServername(), meta, this, BaseMessages.getString(PKG, "JobMeta.SearchMetadata.DatabaseServer")));
}
// {
if (meta.getPassword() != null) {
stringList.add(new StringSearchResult(meta.getPassword(), meta, this, BaseMessages.getString(PKG, "JobMeta.SearchMetadata.DatabasePassword")));
// }
}
}
}
// are...
if (searchNotes) {
for (int i = 0; i < nrNotes(); i++) {
NotePadMeta meta = getNote(i);
if (meta.getNote() != null) {
stringList.add(new StringSearchResult(meta.getNote(), meta, this, BaseMessages.getString(PKG, "JobMeta.SearchMetadata.NotepadText")));
}
}
}
return stringList;
}
use of org.pentaho.di.core.NotePadMeta in project pentaho-kettle by pentaho.
the class JobMeta method getXML.
/*
* (non-Javadoc)
*
* @see org.pentaho.di.core.xml.XMLInterface#getXML()
*/
public String getXML() {
// Clear the embedded named clusters. We will be repopulating from steps that used named clusters
getNamedClusterEmbedManager().clear();
Props props = null;
if (Props.isInitialized()) {
props = Props.getInstance();
}
StringBuilder retval = new StringBuilder(500);
retval.append(XMLHandler.openTag(XML_TAG)).append(Const.CR);
retval.append(" ").append(XMLHandler.addTagValue("name", getName()));
retval.append(" ").append(XMLHandler.addTagValue("description", description));
retval.append(" ").append(XMLHandler.addTagValue("extended_description", extendedDescription));
retval.append(" ").append(XMLHandler.addTagValue("job_version", jobVersion));
if (jobStatus >= 0) {
retval.append(" ").append(XMLHandler.addTagValue("job_status", jobStatus));
}
retval.append(" ").append(XMLHandler.addTagValue("directory", (directory != null ? directory.getPath() : RepositoryDirectory.DIRECTORY_SEPARATOR)));
retval.append(" ").append(XMLHandler.addTagValue("created_user", createdUser));
retval.append(" ").append(XMLHandler.addTagValue("created_date", XMLHandler.date2string(createdDate)));
retval.append(" ").append(XMLHandler.addTagValue("modified_user", modifiedUser));
retval.append(" ").append(XMLHandler.addTagValue("modified_date", XMLHandler.date2string(modifiedDate)));
retval.append(" ").append(XMLHandler.openTag(XML_TAG_PARAMETERS)).append(Const.CR);
String[] parameters = listParameters();
for (int idx = 0; idx < parameters.length; idx++) {
retval.append(" ").append(XMLHandler.openTag("parameter")).append(Const.CR);
retval.append(" ").append(XMLHandler.addTagValue("name", parameters[idx]));
try {
retval.append(" ").append(XMLHandler.addTagValue("default_value", getParameterDefault(parameters[idx])));
retval.append(" ").append(XMLHandler.addTagValue("description", getParameterDescription(parameters[idx])));
} catch (UnknownParamException e) {
// skip the default value and/or description. This exception should never happen because we use listParameters()
// above.
}
retval.append(" ").append(XMLHandler.closeTag("parameter")).append(Const.CR);
}
retval.append(" ").append(XMLHandler.closeTag(XML_TAG_PARAMETERS)).append(Const.CR);
Set<DatabaseMeta> usedDatabaseMetas = getUsedDatabaseMetas();
// Save the database connections...
for (int i = 0; i < nrDatabases(); i++) {
DatabaseMeta dbMeta = getDatabase(i);
if (props != null && props.areOnlyUsedConnectionsSavedToXML()) {
if (usedDatabaseMetas.contains(dbMeta)) {
retval.append(dbMeta.getXML());
}
} else {
retval.append(dbMeta.getXML());
}
}
// The slave servers...
//
retval.append(" ").append(XMLHandler.openTag(XML_TAG_SLAVESERVERS)).append(Const.CR);
for (int i = 0; i < slaveServers.size(); i++) {
SlaveServer slaveServer = slaveServers.get(i);
retval.append(slaveServer.getXML());
}
retval.append(" ").append(XMLHandler.closeTag(XML_TAG_SLAVESERVERS)).append(Const.CR);
//
for (LogTableInterface logTable : getLogTables()) {
retval.append(logTable.getXML());
}
retval.append(" ").append(XMLHandler.addTagValue("pass_batchid", batchIdPassed));
retval.append(" ").append(XMLHandler.addTagValue("shared_objects_file", sharedObjectsFile));
retval.append(" ").append(XMLHandler.openTag("entries")).append(Const.CR);
for (int i = 0; i < nrJobEntries(); i++) {
JobEntryCopy jge = getJobEntry(i);
jge.getEntry().setRepository(repository);
retval.append(jge.getXML());
}
retval.append(" ").append(XMLHandler.closeTag("entries")).append(Const.CR);
retval.append(" ").append(XMLHandler.openTag("hops")).append(Const.CR);
for (JobHopMeta hi : jobhops) {
// Look at all the hops
retval.append(hi.getXML());
}
retval.append(" ").append(XMLHandler.closeTag("hops")).append(Const.CR);
retval.append(" ").append(XMLHandler.openTag("notepads")).append(Const.CR);
for (int i = 0; i < nrNotes(); i++) {
NotePadMeta ni = getNote(i);
retval.append(ni.getXML());
}
retval.append(" ").append(XMLHandler.closeTag("notepads")).append(Const.CR);
// Also store the attribute groups
//
retval.append(AttributesUtil.getAttributesXml(attributesMap));
retval.append(XMLHandler.closeTag(XML_TAG)).append(Const.CR);
return XMLFormatter.format(retval.toString());
}
use of org.pentaho.di.core.NotePadMeta in project pentaho-kettle by pentaho.
the class JobMeta method unselectAll.
/**
* Unselect all.
*/
public void unselectAll() {
int i;
for (i = 0; i < nrJobEntries(); i++) {
JobEntryCopy ce = getJobEntry(i);
ce.setSelected(false);
}
for (i = 0; i < nrNotes(); i++) {
NotePadMeta ni = getNote(i);
ni.setSelected(false);
}
}
use of org.pentaho.di.core.NotePadMeta in project pentaho-kettle by pentaho.
the class JobPainter method drawJobElements.
private void drawJobElements() {
if (!shadow && gridSize > 1) {
drawGrid();
}
try {
ExtensionPointHandler.callExtensionPoint(LogChannel.GENERAL, KettleExtensionPoint.JobPainterStart.id, this);
} catch (KettleException e) {
LogChannel.GENERAL.logError("Error in JobPainterStart extension point", e);
}
// First draw the notes...
gc.setFont(EFont.NOTE);
for (int i = 0; i < jobMeta.nrNotes(); i++) {
NotePadMeta ni = jobMeta.getNote(i);
drawNote(ni);
}
gc.setFont(EFont.GRAPH);
// ... and then the rest on top of it...
for (int i = 0; i < jobMeta.nrJobHops(); i++) {
JobHopMeta hi = jobMeta.getJobHop(i);
drawJobHop(hi, false);
}
EImage arrow;
if (candidate != null) {
drawJobHop(candidate, true);
} else {
if (startHopEntry != null && endHopLocation != null) {
Point fr = startHopEntry.getLocation();
Point to = endHopLocation;
if (endHopEntry == null) {
gc.setForeground(EColor.GRAY);
arrow = EImage.ARROW_DISABLED;
} else {
gc.setForeground(EColor.BLUE);
arrow = EImage.ARROW_DEFAULT;
}
Point start = real2screen(fr.x + iconsize / 2, fr.y + iconsize / 2);
Point end = real2screen(to.x, to.y);
drawArrow(arrow, start.x, start.y, end.x, end.y, theta, calcArrowLength(), 1.2, null, startHopEntry, endHopEntry == null ? endHopLocation : endHopEntry);
} else if (endHopEntry != null && endHopLocation != null) {
Point fr = endHopLocation;
Point to = endHopEntry.getLocation();
if (startHopEntry == null) {
gc.setForeground(EColor.GRAY);
arrow = EImage.ARROW_DISABLED;
} else {
gc.setForeground(EColor.BLUE);
arrow = EImage.ARROW_DEFAULT;
}
Point start = real2screen(fr.x, fr.y);
Point end = real2screen(to.x + iconsize / 2, to.y + iconsize / 2);
drawArrow(arrow, start.x, start.y, end.x, end.y + iconsize / 2, theta, calcArrowLength(), 1.2, null, startHopEntry == null ? endHopLocation : startHopEntry, endHopEntry);
}
}
for (int j = 0; j < jobMeta.nrJobEntries(); j++) {
JobEntryCopy je = jobMeta.getJobEntry(j);
drawJobEntryCopy(je);
}
//
if (noInputEntry != null) {
gc.setLineWidth(2);
gc.setForeground(EColor.RED);
Point n = noInputEntry.getLocation();
gc.drawLine(offset.x + n.x - 5, offset.y + n.y - 5, offset.x + n.x + iconsize + 5, offset.y + n.y + iconsize + 5);
gc.drawLine(offset.x + n.x - 5, offset.y + n.y + iconsize + 5, offset.x + n.x + iconsize + 5, offset.y + n.y - 5);
}
if (drop_candidate != null) {
gc.setLineStyle(ELineStyle.SOLID);
gc.setForeground(EColor.BLACK);
Point screen = real2screen(drop_candidate.x, drop_candidate.y);
gc.drawRectangle(screen.x, screen.y, iconsize, iconsize);
}
try {
ExtensionPointHandler.callExtensionPoint(LogChannel.GENERAL, KettleExtensionPoint.JobPainterEnd.id, this);
} catch (KettleException e) {
LogChannel.GENERAL.logError("Error in JobPainterEnd extension point", e);
}
if (!shadow) {
drawRect(selrect);
}
}
Aggregations